0

我正在使用 JPA Hibernate 实现,我正在尝试创建一个按数据排序的命名查询,然后只获取前两行。我已经尝试了以下方法,但它无效。有任何想法吗?我正在使用 Oracle DBMS。

 @NamedQuery(name = "Test.getLastTwoRecords", 
        query = "SELECT a FROM Test a WHERE rownum < 3 in (SELECT b FROM Test b WHERE b.value = :value order by b.date desc)")
4

1 回答 1

3

我会做以下事情:

@NamedQuery(name = "Test.getOrderedRecords", query = "SELECT a FROM Test a WHERE a.value = :value order by a.date desc)")

接着:

List results = entityManager.createNamedQuery("Test.getOrderedRecords").setParameter("value", X).setMaxResults(2).getResultList();

JPA 通常足够聪明,可以找出截断结果列表的最佳方法。

于 2013-04-25T19:22:13.837 回答