hibernate多表联合查询返回的list没有数据,但list.isEmpty()判断为啥不为真

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate多表联合查询返回的list没有数据,但list.isEmpty()判断为啥不为真相关的知识,希望对你有一定的参考价值。

参考技术A 那要看你用的什么查询方法了 如果使用了懒加载的话那肯定不为空了...因为它生成了 代理对象 .. 参考技术B 可以尝试通过调试查看执行完查询时list中的元素值;本回答被提问者采纳

(hibernate)如果我想查询表的总记录数,HQL语句应该怎么写?又如何获得值呢?

如果有代码最好啦!

hql你就直接写就行,笨方法就是查询所有的,放在List集合里,然后list.size就得到数据库表的总记录数了啊 要非写hql语句的话 它和sql语句是一样的SELECT count(*) FROM 类名 参考技术A select * from table
where rownum<(select count(*)+1 from table)
minus
select * from table
where rownum<(select count(*) from table)

也可以简化为
select * from table
minus
select * from table
where rownum<(select count(*) from table)
效果是一样的

切记rownum是伪列 只能用<

顺便给你求第X行的通用SQL语句
select * from table where rownum<X+1
minus
select * from table where rownum<X
参考技术B String hql ="SELECT count(u) FROM User u";
Query query = session.createQuery(hql);
Integer count = query.uniqueResult();
参考技术C String hql = "select count(*) from User u";

session.createQuery(hql).uniqueResult();

这里返回Object,你想转int 或 long 随你。本回答被提问者采纳

以上是关于hibernate多表联合查询返回的list没有数据,但list.isEmpty()判断为啥不为真的主要内容,如果未能解决你的问题,请参考以下文章

(hibernate)如果我想查询表的总记录数,HQL语句应该怎么写?又如何获得值呢?

hibernate实现多表联合查询

hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决?

mybatis中多表联合查询与DTO的字段对应问题

MYSQL 多表联合查询问题

Hibernate的HQL多表查询