如何在 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 生成的查询
我尝试创建请求:
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 生成的查询