实体A
有两个单向&与B
之间存在懒惰的一对一关系(即没有反比关系)。
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, optional = false)
@JoinColumn(name = "first_b_id")
private B firstB;
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, optional = false)
@JoinColumn(name = "second_b_id")
private B secondB;
延迟加载工作正常。但是如果我调用
myA.getSecondB()
SQL日志显示Hibernate发布类似
的内容select * from B where id in (value1, value2)
因此,这些关系会被懒惰地处理,但它们都会被立即加载。 对此有什么解释和解决方法?
哦,为什么这么相关你可能会问...好吧,B
实体是LOB。一个是5 + MB原版,另一个是200KB“预览版”。当然,如果绝对必要,我只想加载原件。