hibernate中的javaenum
我在MySQL表中有一列,其中有一个枚举变量:“questionTypes” 我将如何为此创建实体 对于字符串,我执行以下操作:hibernate中的javaenum,java,hibernate,enums,Java,Hibernate,Enums,我在MySQL表中有一列,其中有一个枚举变量:“questionTypes” 我将如何为此创建实体 对于字符串,我执行以下操作: @Column(name = "explanation") private String explanation public String getExplanation() { return explanation; } public void setExplanation(String explanation) { this.explanation
@Column(name = "explanation")
private String explanation
public String getExplanation() {
return explanation;
}
public void setExplanation(String explanation) {
this.explanation = explanation;
}
我应该为枚举做什么?添加JPA的枚举注释(省略getter/setter):
其中
QuestionType
是一个常规Java枚举。添加JPA的枚举注释(省略getter/setter):
其中
QuestionType
是常规Java枚举。使用EnumType.ORDINAL为枚举保留数值,使用EnumType.STRING为枚举保留字符串值。我更喜欢后者,它更容易在数据库中读取。我会避免EnumType.ORDINAL,因为它允许某人将另一个值放在enum列表末尾以外的某个位置。如果使用EnumType.STRING,则源中的顺序无关紧要。只有当有人完全删除某个值时,您才会出现问题。请使用EnumType.ORDINAL为您的枚举保留数值,使用EnumType.STRING为您的枚举保留字符串值。我更喜欢后者,它更容易在数据库中读取。我会避免EnumType.ORDINAL,因为它允许某人将另一个值放在enum列表末尾以外的某个位置。如果使用EnumType.STRING,则源中的顺序无关紧要。只有当有人彻底删除某个值时,才会出现问题。
@Entity
class Answer {
@Column(name = "explanation")
private String explanation
@Column(name = "questionType")
@Enumerated(EnumType.STRING)
private QuestionType type
}