我将“性别”列作为 VARCHAR(1)/CHAR。 如何在不使用@Entity类的情况下将值“M”/“F”解析为具有值(MALE,FEMALE)的java枚举
@Column(name="gender")
private Character cGender;
并手动将其转换为枚举对象?
最佳答案
您需要提供自己的转换器:
@Convert(converter = GenderConverter.class)
@Column(name="gender")
private Gender gender;
然后实现
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;
}
}
关于java - Hibernate char 列枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44551058/