使用 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 中有一个错误)
- 还是我在某处犯了错误?
- 有没有解决这个问题的方法?