Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 使用Oracle rownum和order by休眠NamedQuery_Hibernate_Jpa - Fatal编程技术网

Hibernate 使用Oracle rownum和order by休眠NamedQuery

Hibernate 使用Oracle rownum和order by休眠NamedQuery,hibernate,jpa,Hibernate,Jpa,我正在使用JPA Hibernate实现,并尝试创建一个按数据排序的namedquery,然后只获取前两行。我试过下面的方法,但无效。有什么想法吗?我正在使用Oracle数据库管理系统 @NamedQuery(name = "Test.getLastTwoRecords", query = "SELECT a FROM Test a WHERE rownum < 3 in (SELECT b FROM Test b WHERE b.value = :value orde

我正在使用JPA Hibernate实现,并尝试创建一个按数据排序的namedquery,然后只获取前两行。我试过下面的方法,但无效。有什么想法吗?我正在使用Oracle数据库管理系统

 @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)")

我会这样做:

@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通常非常聪明,能够找出截断结果列表的最佳方法。

我会做以下工作:

@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通常足够聪明,能够找出截断结果列表的最佳方法