Java 如何在加入Hibernate条件后获取行数?

Java 如何在加入Hibernate条件后获取行数?,java,mysql,hibernate,criteria,Java,Mysql,Hibernate,Criteria,我尝试创建请求: 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 如何

我尝试创建请求:

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

如何在不调用
criteria.list().size()
的情况下返回
340

我认为在使用
Projections.rowCount()
hibernate忽略

criteria.setFetchMode(字段,FetchMode.JOIN)

您可以使用
createAlias

criteria.createAlias(“字段”,“字段”,JoinType.LEFT\u OUTER\u JOIN)

在这两种情况下,通过在hibernate配置文件中使用
hibernate.show\u sql
检查hibernate生成的查询