JavaEE 6 チュートリアル (http://docs.oracle.com/javaee/6/tutorial/doc/bnbqa.html#bnbqf) では、主キーをマップする方法について次のように述べられています。
主キー、または複合主キーのプロパティまたはフィールドは、次の Java 言語タイプのいずれかである必要があります:
--cut--
java.util.Date (一時的なタイプは DATE である必要があります)
--cut--
「すべきだ」と書かれているのはどういう意味ですか?TemporalType=TIMESTAMP を使用すると、どのような影響がありますか?
long と java.util.Date の 2 つのフィールドを持つ複合主キーがあります。エンティティには、次のマッピングがあります (ID クラスはリストされていません)。
@Id
@Temporal(TemporalType.TIMESTAMP)
private Date startDate;
@Id
private long id;
上記は単体テストでは問題なく機能しますが、使用する時間型に関する上記の文言が気になります。
コメントや洞察は大歓迎です!