我有一个这样的实体:
public class Configuration {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
@Element(name = "user_id", data = true, required = false)
private Users users;
}
我想要定义一个查询,其中一次执行 LazyLoading,另一次不执行。
但是查询:
@NamedQuery(name = "getNondeletedConfiguration", query = "SELECT c FROM Configuration c "
+ "LEFT JOIN c.users users WHERE c.deleted = false"),
不将用户加载到对象中。
强制加载用户对象的方法是访问代码中某处的属性。但是,这不起作用,我不想要这种行为。我想仅根据我的 JPQL 语句来控制延迟加载。我不希望 openJPA 神奇地加载对象,因为它通过 Java 代码中某处的 get 方法检测到访问。
我想这是一个普遍的问题,我只是误解了一些东西。但是,我找不到有关该问题的文档。