Hibernate枚举映射不创建mysql枚举
我目前正在使用Hibernate和MySql。 我试图映射一个枚举类型,根据几个例子,它看起来非常简单 但是,生成的列包含VARCHAR(255)而不是预期的枚举类型 下面是简单的枚举类Hibernate枚举映射不创建mysql枚举,hibernate,Hibernate,我目前正在使用Hibernate和MySql。 我试图映射一个枚举类型,根据几个例子,它看起来非常简单 但是,生成的列包含VARCHAR(255)而不是预期的枚举类型 下面是简单的枚举类 public enum Gender { MALE, FEMALE } 这是注释 @Enumerated(EnumType.STRING) @Column(name = "gender") public Gender getGender() { return gender; } 这是
public enum Gender {
MALE,
FEMALE
}
这是注释
@Enumerated(EnumType.STRING)
@Column(name = "gender")
public Gender getGender() {
return gender;
}
这是由此生成的字段
| gender | varchar(255) | NO | | NULL | |
我不明白为什么类型是字符串而不是枚举。
我已经尝试将枚举类型更改为序号,但是我只得到一个整数而不是字符串,仍然没有枚举
任何帮助都将不胜感激。我认为这是不可能的,因为ENUM不是标准的SQL数据类型。默认情况下,@Enumerated映射到integer,如果使用EnumType.STRING,则列映射到字符串。Enum是受支持的MySQL数据类型-在示例数据库中使用。这篇文章是最近更新的,也是MySQL文档的链接。还有,这很有效