【问题标题】:How to read a column definition of type ENUM & convert it to array \ list如何读取 ENUM 类型的列定义并将其转换为 arraylist
【发布时间】:2013-04-15 06:48:24
【问题描述】:

我有一个表格,其中有一个ENUM('val1', 'val2', 'val3') 类型的列

create table tab1{
  col1 varchar(20),
  col2 varchar(20),
  col3 ENUM('val1', 'val2', 'val3'),
  col4 varchar(20)
}

现在,在 Java 中,我正在使用 JPA 并希望读取列定义以将 col3 枚举值转换为数组 \ 列表。 (这样我就不需要对 emum 元素进行硬编码,并且表定义的更改可以反映在代码中而无需任何代码更改)。

有可能吗?如果是,我该怎么做?

【问题讨论】:

    标签: java hibernate jpa enums


    【解决方案1】:

    没有称为 ENUM 的类型,ENUM 是一个字符串对象,其值是从允许值列表中选择的,这些值在表创建时列规范中明确枚举,对于表,只需将其设置为字符串并添加它在某个集合内的约束。

    CREATE TABLE tab1(
    col1 VARCHAR(20),
    col2 VARCHAR(20),
    col3 VARCHAR(10),
    col4 VARCHAR(20),
    CONSTRAINT cons_tab1_col3 CHECK (col3 IN ('val1', 'val2', 'val3')));    
    

    创建一个名为 yourEnumName 的枚举:

    public enum yourEnumName{
        val1,
        val2,
        val3
    }
    

    在您的实体中添加一个代表您的枚举的属性,例如

    @Enumerated(EnumType.STRING)
    private yourEnumName enumName;
    

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-24
      • 1970-01-01
      • 2011-07-18
      相关资源
      最近更新 更多