mysql - Hibernate基于最大年份和最大月份的排序表,并使用条件按ID分组

标签 mysql hibernate criteria hibernate-criteria detachedcriteria

我很难表示这个查询,该查询是我为从给定的“uid”中选择最大月份和最大年份行而编写的。我有 6 个数据,其中 3 个数据的 uid 为“4”,其他 3 个数据的 uid 为“5”。我想从 uid 4 和 5 获取最大月份和最大年份数据。这是我得到此结果的条件查询。

Size of result list: 2
uID: 5 nID: cdf Month: 11 Year: 2012
uID: 4 nID: f58 Month: 10 Year: 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"));

我的 table 是这样的..

>

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

我想要数据库中的第一条和第五条记录。我被困在这个阶段。请提供一些指导以通过分组来获取记录。

提前致谢。

最佳答案

您想要这种类型的查询

通过uid从Demo组中选择Max(月)、Max(年);

关于mysql - Hibernate基于最大年份和最大月份的排序表,并使用条件按ID分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28395195/

相关文章:

mysql - mysql建表出现错误

java - 单元测试期间未扫描 JPA 实体

java - Hibernate 生成预定义的实体标识符

excel - VBA(Excel): Find Based on Multiple Search Criteria Without Looping

mysql - 适用于手动查询,但不适用于 bash sh 文件

php - 有效 mysql 表字段的正则表达式

sql - 使用 MySQL 在多个数据库中选择和插入

java - Hibernate Criteria查询使Tomcat在几次请求服务后变得无响应

hibernate - 如何将多个值传递给也与其他参数相对应的参数?

java - 处理 rest webservice url 中单个查询参数的多个值并使用 hibernate 条件处理它们