我目前有一个名为Section
的MySQL表,Section
中的每个条目在News
表中都有一堆行。在每个News
条目中,我在Comments
表中有一堆行。
many to one
与News
之间存在Section
关系,many to one
与Comments
之间的News
关系相似。这是孩子们的单向关系。
这可能非常简单,但我是HQL的新手,我如何查询特定Comments
的所有Section
?它是一堆递归选择的连接吗?
答案 0 :(得分:0)
cascading
的概念是关于更新/插入/删除一组相关实体,查询与JPA / Hibernate中的cascading
无关
在您的情况下,您可以使用fetch join
发出单个JOIN SQL来获取给定父级的所有子级。
fetch join
和normal join
之间的区别在于fetch join
还会导致所有子对象与其父对象一起初始化,以便您可以避免潜在的N +循环访问父项的子项时出现1个问题。
您可以使用以下语法发布fetch join
:
from Section as section
left join fetch section.news as new
left join fetch new.comments