如何在HQL中编写“sub”连接?

时间:2013-11-19 23:30:09

标签: hibernate

如何将此原始SQL编写为HQL

SELECT p.* from Parent p LEFT JOIN ( child c INNER JOIN subchild sc ON c.subchild_fk = sc.subchild_id ) ON p.child_fk = c.child_id

我试过这个,但我得到了错误代替括号

FROM Parent as p LEFT JOIN ( p.childFk as c inner join c.subchildFk )

1 个答案:

答案 0 :(得分:1)

HQL不支持使用括号进行连接操作,因此会在查询中引发错误。为了满足您的要求,我们需要重新排序连接表以直接组合它们(将左连接更改为右连接以保持相同的含义)。另外,HQL语法有点类似于SQL语法,您可以在HQL中重写您的查询:

SELECT p.* from child c INNER JOIN subchild sc ON c.subchild_fk = sc.subchild_id RIGHT JOIN Parent p ON p.child_fk = c.child_id