それはJPAとDSL Javaオブジェクトを永続化することは可能ですか?
質問
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();
所属していません StackOverflow