如何让所有孙子成为一对多关系的HQL?

时间:2013-09-19 04:44:10

标签: mysql database hibernate one-to-many cascade

我目前有一个名为Section的MySQL表,Section中的每个条目在News表中都有一堆行。在每个News条目中,我在Comments表中有一堆行。

many to oneNews之间存在Section关系,many to oneComments之间的News关系相似。这是孩子们的单向关系。

这可能非常简单,但我是HQL的新手,我如何查询特定Comments的所有Section?它是一堆递归选择的连接吗?

我道歉,我不知道这叫什么。是级联吗?

1 个答案:

答案 0 :(得分:0)

cascading的概念是关于更新/插入/删除一组相关实体,查询与JPA / Hibernate中的cascading无关

在您的情况下,您可以使用fetch join发出单个JOIN SQL来获取给定父级的所有子级。

fetch joinnormal join之间的区别在于fetch join还会导致所有子对象与其父对象一起初始化,以便您可以避免潜在的N +循环访问父项的子项时出现1个问题。

您可以使用以下语法发布fetch join

from Section as section
left join fetch section.news as new
left join fetch new.comments