検索してみましたが、欲しいものを見つけるのに苦労しました。次のスキーマがあります( * は主キーを示します)
USER
*UserId
-Desc
Registration
*DeviceId
*UserId
-date
だから私は登録の主キーを作成したい...
@Embeddable
public class RegPk{
private String deviceId;
private User user;
@Column(name="DEV_ID")
public String getDevId(){
return deviceId;
}
...
@ManyToOne
@JoinColumn(name="USER_ID", referencedColumnName="USER_ID")
public User getUser() {
return user;
}
...
}
これは正しいですか?持続すると、登録時に USER_ID フィールドが適切に更新されますか?
この種のことを試してみると、次のことがわかります....
[10/7/13 13:37:07:156 EDT] 000000ae webapp E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [サーブレット エラー]-[こんにちは]: org.apache.openjpa.util.MetaDataException : タイプ「class org.me.mfa.jpa.Registration」で指定された ID クラスが、クラスの主キー フィールドと一致しません。ID クラスに、pk フィールド型を含む永続型と同じ主キーがあることを確認してください。一致しないプロパティ: "user"
ならどうしよう?