それはJPAとDSL Javaオブジェクトを永続化することは可能ですか?

StackOverflow https://stackoverflow.com/questions/881884

  •  22-08-2019
  •  | 
  •  

質問

Iはセッターにthisを返しプラスゲッター/セッターは珍しいネーミングパターンを有する、すなわちPOJO DSL Javaオブジェクトを、有します

public class Demo {
    private long id;
    private String name;
    private Date created;

    public Demo id (long value) { id = value; return this; }
    public String id () { return id; }
    public Demo name (String value) { name = value; return this; }
    public String name () { return name; }
    public Demo created (Date value) { created = value; return this; }
    public Date created () { 
        if (created == null) created = new Date ();

        return created;
    }

}

それはセッター/ゲッターメソッドとして「名前(文字列)」と「名前を()」を使用してJPAを伝えることはできますか?

[EDIT]私の問題は、上記のcreatedフィールドです。この分野に関しては、私は、フィールドが常に非NULLとなりますので、JPAは「ゲッター」created()を使用したい。

またはCURRENT TIMESTAMPで新しいオブジェクトを作成するときにcreated == nullを使用するためにJPAを指示する方法はありますか?

役に立ちましたか?

解決

JPA仕様によれば、( JSR-220 を参照)章では、マッピング情報のためのフィールドではなくgetterメソッドに注釈を付けることにより、フィールドアクセスの代わりに、プロパティへのアクセスを使用するためにJPAを伝えることができます2.1.1ます。

私はそれが基本的なJavaの豆のコンセプトですので、あなたがゲッターとセッターに使用する命名規則JPAを伝えることができないと思います。

他のヒント

あなたはクラスで定義し、そのフィールドへのアクセスを使用して、あなただけではないintialise createdでします。

private Date created = new Date();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top