簡體   English   中英

jsf休眠標准api

[英]jsf hibernate criteria api

我在Criteria API中有查詢,如下所示:

CriteriaQuery<XXX> query = builder.get().createQuery(XXX.class).distinct(true);
Root<XXX> root = query.from(XXX.class);
Fetch<XXX, YYY> fetch = root.fetch(XXX_.yyy, JoinType.LEFT);

現在我堅持的部分:
當我得到查詢結果時,我得到了XXX條記錄的列表,並附帶了YYY記錄的列表(如果存在)。
我想按與XXX對象匹配的NUMBER OF YYY個記錄對結果進行排序。

到目前為止,我更接近偏執狂,而不是那個目標。 任何人?

為了解決您的問題,您需要獲取結果SQL Query(根據休眠標准生成),它看起來像這樣:

SELECT xxx.*,count(yyy.FOREIGN_KEY_FIELD) as count FROM XXX xxx left join YYY yyy on (yyy.FOREIGN_KEY_FIELD=xxx.PRIMARY_KEY_FIELD) group by xxx.PRIMARY_KEY_FIELD order by count

在這種情況下,可能需要使用休眠查詢API。 為實體創建條件,並且僅返回實體列表和一些投影。 在hql中,它看起來非常類似於:

select xxx,count(yyy.FOREIGN_KEY_FIELD) as count from XXX xxx left join xxx.yyy yyy group by xxx.PRIMARY_KEY_FIELD order by count

HQL對於此類查詢更為靈活。

暫無
暫無

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

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