JPAを使用して、列挙型をエンティティのIDとして定義できますか?
私は次のことを試しました:
public enum AssetType {
....
}
@Entity
@IdClass(AssetType.class)
public class Adkeys {
private AssetType type;
@Id
@Enumerated(EnumType.STRING)
@Column(nullable = false)
public AssetType getType() {
return type;
}
}
OpenJPA を使用すると、次のように不平を言います。
org.apache.openjpa.persistence.ArgumentException: タイプ「class aa.Adkeys」で指定された ID クラス「class aa.AssetType」には、引数なしのパブリック コンストラクターがありません。
だから私の質問は:
- JPAのエンティティのIDとして列挙型を使用できるようにする必要がありますか? (つまり、OpenJPA にバグがあります)
- または私はどこかで間違いを犯していますか?
- そのような問題の回避策はありますか?