Reputation: 25
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.
Upvotes: 1
Views: 256
Reputation: 9022
Remove the @Enumerated
as this conflicts with a custom converter:
@Column(name = "str_status")
@Convert(converter = StatusPesquisaEnumConverter.class)
private StatusPesquisaEnum statusPesquisa;
Upvotes: 3