Spring boot Spring启动枚举值忽略案例不工作
我有一个名为users的实体,其中一列是field_type。我的数据库是Postgres 9.1。它将在DB中创建的枚举值作为Spring boot Spring启动枚举值忽略案例不工作,spring-boot,enums,Spring Boot,Enums,我有一个名为users的实体,其中一列是field_type。我的数据库是Postgres 9.1。它将在DB中创建的枚举值作为 CREATE TYPE cl.field_types AS ENUM ('text', 'boolean', 'phone', 'integer', 'timestamp', 'email', 'date', 'select', 'numeric', 'textarea', 'checkbox'); ALTER TYPE cl.field_types OWNER T
CREATE TYPE cl.field_types AS ENUM
('text', 'boolean', 'phone', 'integer', 'timestamp', 'email', 'date', 'select', 'numeric', 'textarea', 'checkbox');
ALTER TYPE cl.field_types
OWNER TO postgres;
现在。我想把这个值映射到我的实体列fieldType,我有这样的结果
@Enumerated(EnumType.STRING)
@Column(name = "field_type")
private FieldControlType fieldType;
public enum FieldControlType {
BOOLEAN("boolean"), DATE("date"), EMAIL("email"), INTEGER("integer"), NUMERIC("numeric"), PHONE("phone"), TIMESTAMP("timestamp"), SELECT("select"), TEXT("text"), TEXTAREA("textarea"), CHECKBOX("checkbox");
private final String value;
private FieldControlType(String value) {
this.value = value.toUpperCase();
}
@Override
public String toString() {
return value;
}
@JsonCreator
public static FieldControlType fromString(String key) {
return key == null ? null : FieldControlType.valueOf(key.toUpperCase());
}
public static FieldControlType getEnum(String fieldControlType) {
for (FieldControlType value: values()) {
if (value.name().equalsIgnoreCase(fieldControlType)) {
return value;
}
}
// Throw exception if the no value is matched
throw new IllegalArgumentException();
}
public static Optional < FieldControlType > isValidFieldControlType(String fieldControlType) {
try {
return Optional.of(getEnum(fieldControlType));
} catch (Exception e) {
return Optional.empty();
}
}
}
@枚举(EnumType.STRING)
@列(name=“字段类型”)
私有FieldControlType fieldType;
公共枚举字段控制类型{
布尔(“布尔”)、日期(“日期”)、电子邮件(“电子邮件”)、整数(“整数”)、数字(“数字”)、电话(“电话”)、时间戳(“时间戳”)、选择(“选择”)、文本(“文本”)、文本区(“文本区”)、复选框(“复选框”);
私有最终字符串值;
专用FieldControlType(字符串值){
this.value=value.toUpperCase();
}
@凌驾
公共字符串toString(){
返回值;
}
@JsonCreator
公共静态FieldControlType fromString(字符串键){
return key==null?null:FieldControlType.valueOf(key.toUpperCase());
}
公共静态FieldControlType getEnum(字符串FieldControlType){
对于(FieldControlType值:values()){
if(value.name().equalsIgnoreCase(fieldControlType)){
返回值;
}
}
//如果没有匹配的值,则引发异常
抛出新的IllegalArgumentException();
}
公共静态可选isValidFieldControlType(字符串FieldControlType){
试一试{
返回可选的.of(getEnum(fieldControlType));
}捕获(例外e){
返回可选的.empty();
}
}
}
所以,当使用JPA findAll方法从数据库中获取数据时,我收到下面的错误
没有枚举常量com.cl.commons.enums.FieldType.date
所以,请帮助我解决这个问题
如果有什么拼写错误,请原谅我的英语