[英]How to get row count after JOIN in Hibernate Criteria?
I try to create request: 我尝试创建请求:
Criteria criteria = session.createCriteia(User.class);
criteria.setFetchMode(field, FetchMode.JOIN);
int count1 = criteria.list().size(); //340
Number count2 = (Number) criteria.setProjection(Projections.rowCount()).uniqueResult(); //279
How to return 340
without calling criteria.list().size()
? 如何在不调用
criteria.list().size()
情况下返回340
?
I think while using Projections.rowCount()
hibernate ignores 我认为在使用
Projections.rowCount()
休眠会忽略
criteria.setFetchMode(field, FetchMode.JOIN);
You can use createAlias
您可以使用
createAlias
criteria.createAlias("field","field", JoinType.LEFT_OUTER_JOIN);
Check query generated by hibernate in both the cases by using hibernate.show_sql
in Hibernate configuration file 通过在Hibernate配置文件中使用
hibernate.show_sql
来检查两种情况下由hibernate.show_sql
生成的查询
https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/session-configuration.html#configuration-optional https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/session-configuration.html#configuration-optional
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.