1

私はこのようなエンティティを持っています:

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

私が望むのは、フィールドパスワードがデフォルトでクエリで読み取られたり入力されたりしないことです。しかし、場合によってはもちろん、PWD をチェックしたい場合もあります。この特別なケースでは、PWD を読み取り、User オブジェクトで openJPA によって入力する必要があります。

これを実装するには、どのような Fetch 戦略または JPQL クエリを使用できますか? FetchType.Lazy は、単一のフィールドではなく、結合されたテーブルにのみ適用されると思います。また、openJPA にこの FetchType を上書きし、PWD チェックに本当に必要な場合に備えてこのフィールドをロードするように指示できる JPQL クエリを想像することもできません。

どうもありがとう!セバスチャン

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 に答える