【问题标题】:Hibernate Enum mapping not creating mysql enum休眠枚举映射不创建mysql枚举
【发布时间】:2014-10-29 14:59:20
【问题描述】:

我目前正在将 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 类型更改为 Ordinal,但后来我只得到一个 Integer 而不是字符串,仍然没有枚举。

任何帮助将不胜感激。

【问题讨论】:

    标签: hibernate


    【解决方案1】:

    我认为这是不可能的,因为 ENUM 不是标准的 SQL 数据类型。默认情况下,@Enumerated 映射为整数,如果使用 EnumType.STRING,则列映射为字符串。

    【讨论】:

    猜你喜欢
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 2013-03-27
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 2012-01-17
    相关资源
    最近更新 更多