Java @枚举(EnumType.ORDINAL、EnumType.STRING)
我想将枚举值添加到我的web应用程序(spring、java)中,我发现了这篇文章。 我按照步骤做了,感谢上帝,但问题是。我在实体中的getter上添加了Java @枚举(EnumType.ORDINAL、EnumType.STRING),java,mysql,spring,hibernate,enums,Java,Mysql,Spring,Hibernate,Enums,我想将枚举值添加到我的web应用程序(spring、java)中,我发现了这篇文章。 我按照步骤做了,感谢上帝,但问题是。我在实体中的getter上添加了@Enumerated(EnumType.String)(上面链接中的文章说,如果我放入.String,它将保存字符串值,而不是1,2,3,4。因此,我运行应用程序保存实体,无论我放入什么EnumTypeString(String或ordinal)我总是在数据库中得到0,1,2,所以我尝试使该列变为varchar,但仍然使用.String得到0
@Enumerated(EnumType.String)
(上面链接中的文章说,如果我放入.String,它将保存字符串值,而不是1,2,3,4。因此,我运行应用程序保存实体,无论我放入什么EnumType
String(String或ordinal)我总是在数据库中得到0,1,2,所以我尝试使该列变为varchar,但仍然使用.String得到0,1,2。我成功地打印出了性别值,而没有任何问题
<form:select path="gender">
<form:option value="MALE">MALE</form:option>
<form:option value="FEMALE">FEMALE</form:option>
</form:select>
男性
女性
我在数据库中得到了男性或女性,因为0和1,但我仍然想知道,当我在getter上添加适当的注释时,为什么它不会保存字符串?您是否将数据库中的旧值从序号转换为字符串?此外,您确实必须使用varchar2(大到足以包含枚举中最大的字符串值)…顺便说一句,我认为mysql具有'enum'类型,可以用于您的enum;-)