Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @枚举(EnumType.ORDINAL、EnumType.STRING)_Java_Mysql_Spring_Hibernate_Enums - Fatal编程技术网

Java @枚举(EnumType.ORDINAL、EnumType.STRING)

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

我想将枚举值添加到我的web应用程序(spring、java)中,我发现了这篇文章。 我按照步骤做了,感谢上帝,但问题是。我在实体中的getter上添加了
@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;-)