gpt4 book ai didi

mysql - 如何让所有孙子处于一对多关系 HQL 中?

转载 作者:行者123 更新时间:2023-11-30 01:17:43 26 4
gpt4 key购买 nike

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

NewsSection 之间是多对一关系,之间也是类似的多对一关系>评论新闻。这是来自 child 的单向关系。

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

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

最佳答案

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

在您的情况下,您可以使用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

关于mysql - 如何让所有孙子处于一对多关系 HQL 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18886345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com