sql - JPA CriteriaQuery 有子句
问题描述
所以我正在开发一个 web 应用程序,我需要执行一个查询来检索我收到一条消息的最新项目。应用程序使用 JAX-RS 和 Hibernate 来完成它的任务。该表如下所示:
我感兴趣的是独特的项目,但那些在更新的列中具有最大值的项目。
所以通常我会创建一个子查询,在其中我将按更新的列对所有内容进行排序,并在 out 查询中调用 distinct 方法检索有限数量的行。但显然 sql 不希望这样,并且 criteriaQuery 不允许在子查询中使用 orderby。
知道如何使以下查询 sql 舒适(删除嵌套查询)。它可能在语法上不正确,但应该足以了解我想要它做什么:
select distinct project from (select project,updated from Message order by updated) limit 5
我进行了很多搜索,尽管 group by 与 having 子句结合可以解决我的问题,但也无法使其正常工作。
解决方案
要获取 5 条最新消息,您可以使用:
List resultList = em.createQuery("select distinct m.project from Message m order by m.updated desc")
.setMaxResults(5)
.getResultList();
推荐阅读
- sitemappath - 站点地图似乎不适用于 .Net Core
- react-native - 防止在本机反应中按下 TextInput 时显示系统键盘
- python - 在Python中将分隔的字符串拆分为字典,但忽略双引号之间的“相等”
- python - 对系数有约束的多元线性回归
- git - Git:合并给出了意想不到的结果
- excel - Excel 的通用 VBA 字数统计
- java - 如何修复 java.lang.IllegalStateException:您尚未启动 Objectify 上下文
- c - 如果是文字成绩,我如何计算大学平均成绩?
- javascript - 3秒后调用函数更新'onclick'参数
- angular - 如何在 Angular 7 中手动清除 routeReuseStrategy?