Hibernate JPQL选择具有最大值的记录
我正在尝试为特定列选择具有最大值的记录,以下是我到目前为止得到的结果:Hibernate JPQL选择具有最大值的记录,hibernate,jpa,hql,jpql,Hibernate,Jpa,Hql,Jpql,我正在尝试为特定列选择具有最大值的记录,以下是我到目前为止得到的结果: select o from Order o where o.orderNumber = :orderNumber and o.version = (select max(o.version) from Order o where o.orderNumber = :orderNumber) 这似乎正在生成SQL: SELECT * FROM Order WHERE ordernumbe
select o from Order o
where o.orderNumber = :orderNumber
and o.version =
(select max(o.version) from Order o where o.orderNumber = :orderNumber)
这似乎正在生成SQL:
SELECT *
FROM Order
WHERE ordernumber = :orderNumber
AND orderversion = (SELECT Max(orderversion)
FROM order
WHERE ordernumber = :orderNumber);
我认为以下SQL更有效:
SELECT *
FROM order ord
INNER JOIN (SELECT ordernumber,
Max (version) AS version
FROM order
WHERE ordernumber = :ordernumber
GROUP BY ordernumber) mx
ON ord.ordernumber = mx.ordernumber
AND ord.version = mx.version;
我是否可以用JPQL来表达这一点
(对于与在特定字段上选择最大值记录相关的问题,大多数在线答案似乎表明我提供了上述JPQL…否,无法使用HQL生成上述SQL查询。说: 请注意,HQL子查询只能出现在select或where中 条款
您使用的是哪个数据库引擎?我使用Oracle和Hibernate作为我的JPA提供程序。