0

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

它是 和 之间的关系many to one,同样是和之间的关系。这是来自孩子的单向关系。NewsSectionmany to oneCommentsNews

这可能很容易,但我是 HQL 新手,我将如何查询Comments特定的所有内容Section?它是一堆递归选择的连接吗?

对不起,我不知道这叫什么。是级联的吗?

4

1 回答 1

0

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

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

和之间的区别在于fetch joinnormal joinfetch join也将导致所有子对象与它们的父对象一起在一次选择中被初始化,这样当您遍历父对象的子对象时,您可以避免潜在的 N+1 问题。

fetch join您可以使用类似于以下语法的内容发出:

from Section as section
left join fetch section.news as new
left join fetch new.comments 
于 2013-09-19T08:24:52.430 回答