我尝试创建请求:

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

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

最佳答案

我认为在使用hibernate忽略时
Projections.rowCount()
您可以使用criteria.setFetchMode(field, FetchMode.JOIN);
createAlias
通过在hibernate配置文件中使用criteria.createAlias("field","field", JoinType.LEFT_OUTER_JOIN);检查两种情况下hibernate生成的查询
https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/session-configuration.html#configuration-optional

10-07 13:03
查看更多