[英]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.