可以LAZY使用在HQL中覆盖LEFT JOIN FETCH。
LAZY
LEFT JOIN FETCH
FROM Obj AS obj LEFT JOIN FETCH obj.otherObj WHERE obj.id = :id
是否也可以覆盖EAGER?怎么样?
EAGER
Hibernate Docs中的此代码段中的限定词意味着您可以用热切的方法覆盖懒惰,但不能用其他方法来替代:
如果您正在使用属性级别的延迟获取(通过字节码检测),则可以强制Hibernate使用获取所有属性立即在第一个查询中获取延迟属性。
不寻常的是,如果您使用Criteria API从急切变为懒惰,则看起来可以。只需调用setFetchMode(FetchMode.LAZY)相关的联接即可。
setFetchMode(FetchMode.LAZY)