假设我有一个与其他实体有关系的实体,其中FetchType定义为EAGER
class Entity {
@OneToOne(fetch=FetchType.EAGER)
@JoinColumn(name="user_profile_id")
private OtherEntity otherEntity;
}
此实体在不同的服务中使用,FetchType.EAGER
上的某些服务OtherEntity
是我想要的,但在其他一些服务中,我很乐意将FetchType
更改为FetchType.LAZY
,但是在我的Entity类中,我已经在FetchType
上将OtherEntity
定义为“EAGER”。
所以问题是:有没有办法在运行时定义FetchType
?
谢谢,欢呼
答案 0 :(得分:0)
您通常不会定义要默认为“渴望”的内容。然后在运行时指定延迟,因为懒惰需要特别支持才能在前期编织,这不是在热切的关系上完成的。大多数人会将其定义为惰性,然后在需要在单个查询中急切地获取时使用eclipselink.join-fetch查询提示。
您还可以尝试fetchGroups,这允许定义fetchGroup以指定要加载的属性。我不确定它是否会覆盖急切的关系,它可能值得尝试,它可以用于制作相反的情况,您希望更轻松地获取某些惰性关系。