如何解决Spring Boot枚举值忽略大小写不起作用
我有一个称为用户的实体,并且其中一列是field_type。我的数据库是Postgres 9.1。而且它在数据库中创建的Enums的值是...
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();
}
}
}
因此,在通过JPA findAll方法从数据库中获取数据时,我在下面收到此错误。
没有枚举常量com.cl.commons.enums.FieldType.date
所以,请帮助我解决此问题。
对我的英语感到抱歉,如果有任何错误的拼写。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。