简体   繁体   中英

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() ?

I think while using Projections.rowCount() hibernate ignores

criteria.setFetchMode(field, FetchMode.JOIN);

You can use 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

https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/session-configuration.html#configuration-optional

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM