我正在使用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)")
答案 0 :(得分: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通常很聪明,可以找出截断结果列表的最佳方法。