I have column 'gender' as a VARCHAR(1)/CHAR. How to parse values "M"/"F" to java enum with values (MALE, FEMALE) in @Entity class without using
@Column(name="gender")
private Character cGender;
and converting it manually to enum object?
You need to provide your own converter:
@Convert(converter = GenderConverter.class)
@Column(name="gender")
private Gender gender;
Then implement it
public class GenderConverter implements AttributeConverter<Gender, Character> {
@Override
public Character convertToDatabaseColumn(Gender from) {
Character value = 'm';
if (from == Gender.FEMALE) {
value = 'f';
}
return value;
}
@Override
public Gender convertToEntityAttribute(Character to) {
Gender g = Gender.MALE;
if ('f' == to)
g = Gender.FEMALE;
}
return g;
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With