我有一个具有 @OneToOne 关联的实体。像这样:
@Entity
public class Person {
@Id Long id;
@OneToOne(fetch = FetchType.LAZY) Address address;
}
Run Code Online (Sandbox Code Playgroud)
当我加载此类实体时,Hibernate 会忽略 LAZY。弗拉德解释说:
延迟加载适用于 @OneToOne 关联的父端之外的情况。这是因为 Hibernate 没有其他方法可以知道是否为该变量分配 null 或 Proxy。
这里有类似的声明。我不明白。有 FK 列 PERSON.ADDRESS_ID,如果有任何值,Hibernate应该知道应该使用代理。我错过了什么吗?
更新:我的原始代码是用 Kotlin 编写的。我尝试在 Java 中创建相同的示例,令人惊讶的是,延迟加载在那里工作得很好。