次の JPA エンティティが与えられます。
@Entity(name = "MyEntity")
public class MyEntity {
@Id
protected String id = null;
protected String name = null;
protected String adress = null;
@Transient
protected User user = new User(name, adress);
// Required by JPA
protected MyEntity() {
}
public MyEntity(String id, String name, String adress) {
// assign instance variables
}
public String getUser() {
return user.toString();
}
...
}
Eclipse Link によって作成された MyEntity で getUser() が呼び出されると、目的の文字列が返されません。問題は、MyEntity のインスタンス変数が Eclipse Link によって設定される前に User がインスタンス化されたことです。つまり、ユーザーは name = null および address = null で作成されました。
Eclipse Link がすべてのインスタンス変数を設定した後に User が確実に作成されるようにするにはどうすればよいですか?