Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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 “如何写作”;“分;加入HQL?_Hibernate - Fatal编程技术网

Hibernate “如何写作”;“分;加入HQL?

Hibernate “如何写作”;“分;加入HQL?,hibernate,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 ) HQL不支持带括号的联

如何将此原始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 )

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