【发布时间】:2020-05-28 11:16:19
【问题描述】:
如果父实体中的布尔标志设置为true,Hibernate 3.6 中是否有办法仅加载子实体?
例如:
@Entity
class Parent {
@OneToOne
private Child child;
private boolean loadChild;
}
因此,如果 loadChild == false,则不应从 db 加载子级并且始终为 null,否则应加载(当然,如果可用)。目前,孩子正在急切地加载,保持这种状态会很好。
基本上,我们在这里要防止的是子项的实际加载以及这可能产生的所有性能影响。加载它然后使用 getter 返回 null 会很容易,但是加载实际上不需要的子节点会影响性能。
【问题讨论】:
-
这和 Hibernate 有什么关系?此外,更多的上下文会有所帮助,这样我们就不会在这里遇到典型的 X-Y-Problem
-
好吧,我们使用 Hibernate 来管理这些实体。我不确定我还能在这里给出什么上下文。真的就是这样……
-
好吧,这是如何在代码中使用的示例。此外,
Child是否使用@OneToOne关系关联?然后你可以让它EAGER加载等等。 -
是的,它是 OneToOne,目前正在热切地加载,如果可能,我们希望保持这种状态。
-
那么究竟是什么是问题所在?它要么在加载期间被初始化(因为它是 EAGER),要么如果它不存在则为空。
标签: java hibernate hibernate-mapping