如何读取ENUM&类型的列定义将其转换为array \ list

时间:2013-04-15 06:48:25

标签: java hibernate jpa enums

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

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

现在,在Java中,我正在使用JPA&想要读取列定义以将col3枚举值转换为array \ list。 (因此,我不需要硬编码emum元素,并且表定义中的更改可以反映代码而无需更改任何代码)。

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

1 个答案:

答案 0 :(得分:0)

没有名为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
}

在您的实体中添加代表您的枚举的attribut

@Enumerated(EnumType.STRING)
private yourEnumName enumName;

希望能帮助你。