如何在 Hibernate Criteria 中加入后获取行数?

How to get row count after JOIN in 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.list().size() 的情况下 return 340

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

criteria.setFetchMode(field, FetchMode.JOIN);

您可以使用createAlias

criteria.createAlias("field","field", JoinType.LEFT_OUTER_JOIN);

在 Hibernate 配置文件

中使用 hibernate.show_sql 检查两种情况下由 hibernate 生成的查询

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