【发布时间】:2011-04-08 14:23:52
【问题描述】:
我有一个模型对象,它实际上是一个包含字段和 getter 的枚举:
@Entity
public enum Type {
TYPE1, TYPE2, TYPE3, TYPE4;
@Column
private Long id;
@Column
private String name;
...
public String getName() {
return this.name;
}
...
}
它编译并运行良好。但是,如果我调用 getter 方法,它会返回 null(它不会加载存储在数据库中的任何值)。这是标准行为吗?有没有办法让 JPA 加载它们?
【问题讨论】:
-
你期望什么样的数据库表示?
-
记录(TYPE1、TYPE2 等)已经在数据库中(它是更多应用程序使用的遗留数据库),因此有两种选择可以知道哪个记录是哪个:我可以命名常量类型 Long(存储
id值)与标准模型对象或枚举模型对象组合。不过,我宁愿使用 ENUM 解决方案。 -
啊!不要这样做!不要像那样滥用枚举!!!!!!!!!!!!
-
肖恩,您能否详细说明您的“这是一种滥用”的评论?