1

我有一个这样的实体:

public class User {
    @Column(name = "password")
    @Element(name = "pass", data = true)
    private String password;
}

我想要的是默认情况下不会在查询中读取/填充字段密码。但在某些情况下,我当然想检查 PWD,在这种特殊情况下,应该由 openJPA 在 User 对象中读取和填充 PWD。

我可以使用哪种 Fetch 策略或 JPQL 查询来实现这一点?我认为 FetchType.Lazy 仅适用于加入表而不是单个字段。我也无法想象一个 JPQL 查询,我可以告诉 openJPA 覆盖这个 FetchType 并加载这个字段,以防我真的需要它来进行 PWD 检查。

非常感谢!塞巴斯蒂安

4

1 回答 1

3

实际上,可以将单个字段设置为延迟加载。只需使用惰性获取策略添加 @Basic 注释,如下所示:

public class User {
    @Basic(fetch = FetchType.LAZY)
    @Column(name = "password")
    @Element(name = "pass", data = true)
    private String password;
}

此处提供更多详细信息:http: //openjpa.apache.org/builds/1.1.0/docs/jpa_overview_meta_field.html#jpa_overview_meta_fetch

于 2012-10-01T05:07:40.567 回答