字符串枚举在休眠 [英] String Enum on Hibernate

查看:126
本文介绍了字符串枚举在休眠的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个关于将枚举插入到 VARCHAR 字段中的问题。
这是我的枚举:

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

}

我想插入 A E EA NA 进入数据库。
此外,我尝试过一个转换器:

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

它被映射为:

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

但它正在插入 ATENDIDO ESPERA EMATENDIMENTO NAOATENDIDO 到数据库中。

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

推荐答案

删除 @Enumerated ,因为这与自定义转换器有冲突:

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

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

这篇关于字符串枚举在休眠的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆