【发布时间】:2011-04-12 16:10:47
【问题描述】:
使用 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 中存在错误)
- 还是我在某处犯了错误?
- 是否有解决此类问题的方法?
【问题讨论】:
-
@Nathan:那么它一定是一个错误。