【发布时间】:2015-04-08 07:58:22
【问题描述】:
我很难表示我为从给定的“uid”中选择最大月份和最大年份行编写的这个查询。我有 6 个数据,其中 3 个数据的 uid 为“4”,其他 3 个数据的 uid 为“5”。我想从 uid 4 和 5 中获取最大月份和最大年份数据。这是我的条件查询,我得到了这个结果。
结果列表大小:2
uID:5 nID:cdf 月份:11 年份:2012
uID:4 nID:f58 月:10 年:2012
但是当我将 uid 的年份从 2012 年更改为 2013 年时,它只返回 uid 4 的行。
DetachedCriteria maxYearQuery = DetachedCriteria.forClass(Demo.class);
ProjectionList yearProj = Projections.projectionList();
yearProj.add(Projections.max("contextYear"));
yearProj.add(Projections.max("contextMonth"));
yearProj.add(Projections.groupProperty("entityUUID"));
maxYearQuery.setProjection(yearProj);
Criteria crit = session.createCriteria(Demo.class);
crit.add(Subqueries.propertiesIn(new String[] {"contextYear","contextMonth", "entityUUID"}, maxYearQuery));
crit.addOrder(Order.desc("entityUUID"));
我的桌子是这样的..
>
uID:4 nID:cdf 月:10 年:2012
uID:4 nID:f58 月:9 年:2012
uID:5 nID:f58 月:8 年:2012
uID:5 nID:f58 月:11 年:2012
uID:5 nID:f58 月:10 年:2013
uID:4 nID:f58 月:9 年:2012
我想要数据库中的第一条和第五条记录。我被困在这个阶段。请提供一些指导以通过分组获取记录。
提前致谢。
【问题讨论】:
标签: mysql hibernate criteria hibernate-criteria detachedcriteria