我在java中有枚举
public enum Day {
MONDAY("D1", "X"),
TUESDAY("D2", "X"),
WEDNESDAY("D3", "X"),
THURSDAY("D4", "X"),
FRIDAY("D5", "X"),
SATURDAY("D6", "X"),
SUNDAY("D7", "Y");
private final String value;
private final String value2;
Day(String value, String value2) {
this.value = value;
this.value2 = value2
}
public String getvalue() {
return value;
}
public String getvalue2() {
return value2;
}
}
在我的休眠实体中
@Column(name = "day", nullable = false, length = 50)
@Enumerated(EnumType.STRING)
private Day day;
在 postgres 数据库上,它保存星期一,但我想要 D1。 我尝试了 EnumType.String 但我猜我还需要其他东西
您可以实现一个 AttributeConverter 类,然后用
注释您的枚举@Convert(转换器 = DayConverter.class)
例如。 (第二个功能还需要一些工作)
@Converter(autoApply = true)
public class DayConverter implements AttributeConverter<Day, String> {
@Override
public Integer convertToDatabaseColumn(Day day) {
return day.getValue();
}
@Override
public Day convertToEntityAttribute(String databaseValue) {
return MONDAY;
}
}