Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot Spring启动枚举值忽略案例不工作_Spring Boot_Enums - Fatal编程技术网

Spring boot Spring启动枚举值忽略案例不工作

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

我有一个名为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 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

所以,请帮助我解决这个问题

如果有什么拼写错误,请原谅我的英语