字符串枚举在休眠 [英] String Enum on Hibernate
本文介绍了字符串枚举在休眠的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个关于将枚举插入到 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屋!
查看全文