String Enum on Hibernate

房东的猫 提交于 2020-03-04 05:36:03

问题


I've got an issue about inserting an enum into a VARCHAR field. That's my enum:

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;
    }

}

I want to insert A, E, EA and NA into the database. Furthermore I've tried a converter:

@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);
    }
}

And it's mapped as:

@Column(name = "str_status")
@Enumerated(EnumType.STRING)
@Convert(converter=StatusPesquisaEnumConverter.class)
private StatusPesquisaEnum statusPesquisa;

But it is inserting ATENDIDO, ESPERA, EMATENDIMENTO and NAOATENDIDO into the database.


回答1:


Remove the @Enumerated as this conflicts with a custom converter:

@Column(name = "str_status")
@Convert(converter = StatusPesquisaEnumConverter.class)
private StatusPesquisaEnum statusPesquisa;


来源:https://stackoverflow.com/questions/33895184/string-enum-on-hibernate

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!