【发布时间】:2016-02-28 08:53:30
【问题描述】:
如何将下面的 sql 转换为 HQL
select max(id) from mytable where id in (select top 10 id from mytable where mycolumn-value = 1234 order by id)
【问题讨论】:
如何将下面的 sql 转换为 HQL
select max(id) from mytable where id in (select top 10 id from mytable where mycolumn-value = 1234 order by id)
【问题讨论】:
您不能完全等同于 JPQL,因为无法在使用 JPQL 的子查询中使用 top(或 limit、rownum... 每个数据库使用不同的)。
但是你使用这样的东西:
select max(mt.id) from mytable mt where mt.id in
(select mt2.id from mytable mt2 where mt2.mycolumn-value = 1234 order by mt2.id)
此查询忽略子查询的顶部,不会影响预期结果。
【讨论】: