fetchtype是否填充到其子级

j5fpnvbx  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(341)

例如,我有一个如下的类结构

class Parent {

fetch = FetchType.EAGER
List<Child> children;
}

class Child {
fetch = FetchType.LAZY
List<SuperChild> superChildren;

}

问题是在获取父对象时,例如:

ParentRepository::findById();

超生会因为父母的渴望或懒惰而被带走吗?

ijxebb2r

ijxebb2r1#

没有任何关于 FetchType 意味着与关联实体自身相关的任何行为 FetchType . 甚至注意到 LAZY (这来自jpa规范的文档):
“lazy策略是对持久性提供程序运行时的一个提示,即当数据第一次被访问时,应该延迟地获取数据。允许实现急切地获取指定了lazy strategy提示的数据。”
一般来说,作为旁注 LAZY 可能无法保证,具体取决于实现提供程序。
hibernate(最流行的jpa实现)将延迟获取 superChildren ,所以 FetchTypeParent#children 没关系。我没有尝试过其他实现,但我非常怀疑它是否会有所不同。

相关问题