簡體   English   中英

每個組的休眠條件maxResults

[英]Hibernate Criteria maxResults per Group

我有一個表,其中包含行internalId,值和日期。 有多個條目具有相同的internalId但日期不同。 我只對每個internalId的最新值感興趣。 如何使用“標准”進行管理? 這是我當前的基本代碼:

Criteria criteria = session.createCriteria(myClass.class); 

ProjectionList projList = Projections.projectionList(); 
projList.add(Projections.property("internalId"));
projList.add(Projections.property("value")); 
projList.add(Projections.property("date")); 

criteria.setProjection(projList);
criteria.add(Restrictions.in("internalId", internalIds));
List list = criteria.list();

據我了解,您想要實現的目標是這樣的:

SELECT 
    internalId, 
    value, 
    max(date) as date 
FROM 
    table 
WHERE 
    internalId IN (1, 2, 3, 4 ...) 
GROUP BY 
    internalId

這可以通過Projections max函數來實現:

projList.add(Projections.max("date"));

和groupProperty函數

projList.add(Projections.groupProperty("internalId"))

供參考: http : //docs.jboss.org/hibernate/orm/3.5/reference/en/html_single/#querycriteria

暫無
暫無

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

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