我有一个关于将枚举插入VARCHAR
字段的问题。
这是我的枚举:
public enum StatusPesquisaEnum {
ATENDIDO("A"),
ESPERA("E"),
EMATENDIMENTO("EA"),
NAOATENDIDO("NA");
private StatusPesquisaEnum(String codigo){
this.codigo = codigo;
}
private final String codigo;
public String getCodigo() {
return codigo;
}
}
我想将A
,E
,EA
和NA
插入数据库。
此外,我尝试过转换器:
@Converter(autoApply = true)
public class StatusPesquisaEnumConverter
implements AttributeConverter<StatusPesquisaEnum, String> {
@Override
public String convertToDatabaseColumn(StatusPesquisaEnum status) {
return status.getCodigo();
}
@Override
public StatusPesquisaEnum convertToEntityAttribute(String codigoStatus) {
return StatusPesquisaEnum.valueOf(codigoStatus);
}
}
它被映射为:
@Column(name = "str_status")
@Enumerated(EnumType.STRING)
@Convert(converter=StatusPesquisaEnumConverter.class)
private StatusPesquisaEnum statusPesquisa;
但它正在将ATENDIDO
,ESPERA
,EMATENDIMENTO
和NAOATENDIDO
插入数据库。
答案 0 :(得分:3)
删除@Enumerated
,因为这与自定义转换器冲突:
@Column(name = "str_status")
@Convert(converter = StatusPesquisaEnumConverter.class)
private StatusPesquisaEnum statusPesquisa;