簡體   English   中英

Hibernate Criteria中的JOIN后如何獲取行數?

[英]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()情況下返回340

我認為在使用Projections.rowCount()休眠會忽略

criteria.setFetchMode(field, FetchMode.JOIN);

您可以使用createAlias

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

通過在Hibernate配置文件中使用hibernate.show_sql來檢查兩種情況下由hibernate.show_sql生成的查詢

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM