HQL:是否有可能执行INNER一个子查询加入?HQL:是否有可能执行INNER一个子查询加入?(H

2019-05-12 03:21发布

上图是,我使用通过时间登录项位置数据库结构的简化版本。 我写了下面的SQL查询返回的每个位置的当前项目清单:

select * 
from ItemLocationLog l
inner join 
(select g.idItemLocationLog, max(g.dateTime) as latest
from ItemLocationLog g
group by g.idItem)
as i 
on l.idItem = i.idItem and l.dateTime = i.latest

我遇到的问题是,我想将其转换成HQL,但我还没有找到执行INNER上的子查询JOIN语法,而且好像不支持此操作。 有没有一种方法来转换上面HQL(或标准)或我将不得不在这种情况下使用标准的SQL查询? 谢谢。

Answer 1:

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html#queryhql-subqueries

需要注意的是HQL子查询只能出现在select或者where子句。

因此,该子查询的WHERE子句的一部分,而不是你可以重写查询。 引用l.idItem在子查询



文章来源: HQL: Is it possible to perform an INNER JOIN on a subquery?