2

我有一个表,其中一个类型的列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 元素进行硬编码,并且表定义中的更改可以反映在代码中,而无需更改任何代码)。

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

4

1 回答 1

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
}

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

@Enumerated(EnumType.STRING)
private yourEnumName enumName;

希望对您有所帮助。

于 2013-04-16T16:12:50.543 回答