延迟初始化 - Hibernate

时间:2012-03-20 03:26:04

标签: spring hibernate hql

我们有4个表,

一对一B 一个B到多个C. 一个C到多个D

所有都配置了双向和懒人提取。

但是如果我尝试获取A,它也可以获取B而不是C等等。这是一贯的行为吗?它是如何工作的?

1 个答案:

答案 0 :(得分:0)

是的,这是一致的行为。规范(JPA 2.0)对于使用FetchType.LAZY:

的预期结果并不太严格
  

EAGER策略是持久性提供程序的要求   必须急切地获取关联实体的运行时。懒人   策略是对持久性提供程序运行时的一个提示。

上面取自OneToOne的定义,但同样适用于其他关系,LAZY暗示,而不是规范。

此外,Hibernate决定不实现延迟提取OneToOne关系。如果您需要,请查看:Hibernate OneToOne lazy loading and cascading