Hibernate枚举映射不创建mysql枚举

Hibernate枚举映射不创建mysql枚举,hibernate,Hibernate,我目前正在使用Hibernate和MySql。 我试图映射一个枚举类型,根据几个例子,它看起来非常简单 但是,生成的列包含VARCHAR(255)而不是预期的枚举类型 下面是简单的枚举类 public enum Gender { MALE, FEMALE } 这是注释 @Enumerated(EnumType.STRING) @Column(name = "gender") public Gender getGender() { return gender; } 这是

我目前正在使用Hibernate和MySql。 我试图映射一个枚举类型,根据几个例子,它看起来非常简单

但是,生成的列包含VARCHAR(255)而不是预期的枚举类型

下面是简单的枚举类

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文档的链接。还有,这很有效