JPA CriteriaQuery具有条款

时间:2019-06-21 21:26:40

标签: sql hibernate jpa h2

所以我正在开发一个Web应用程序,我需要执行一个查询,以检索到我收到了消息的最新项目。该应用程序正在使用JAX-RS和Hibernate来完成其任务。该表如下所示:

enter image description here 我所关心的只是独特的项目,但那些在更新的列中具有最大值的项目。

因此,通常我会创建一个子查询,在该子查询中,我将按更新的列对所有内容进行排序,然后在out查询中调用独特的方法来检索有限的行。但是显然sql并不想这样做,而且CriteriaQuery不允许子查询中的orderby。

任何想法我如何使以下查询sql舒适(删除嵌套查询)。它在语法上可能并不正确,但是应该足以让我知道我想要做什么:

select distinct project from (select project,updated from Message order by updated) limit 5

我进行了很多搜索,尽管将一个分组与一个hading子句结合使用可以解决我的问题,但也无法使其工作。

1 个答案:

答案 0 :(得分:0)

要获取5条最新消息,您可以使用:

List resultList = em.createQuery("select distinct m.project from Message m order by m.updated desc")
                    .setMaxResults(5)
                    .getResultList();