Интересно, как отображать с перечислением Java Java и перечислением типа PostgreSQL?PostgreSQL, enum, JPA, EclipseLink
В PostgreSQL стороне я создал этот тип:
CREATE TYPE langage AS ENUM ('FR', 'EN', 'DE');
И у меня есть Java перечисление:
public enum LangageEnum {
FR,
EN,
DE;
}
Мой JPA сущности поле это одна:
@Enumerated(EnumType.STRING)
@Column(name="langage")
private LangageEnum langage = LangageEnum.FR;
но Я получаю Исключение:
Вызвать: org.postgresql.util.PSQLException: ERREUR: la colonne «langage» est de type pretoria.langage mais l'expression est тип характера, различающийся Показатель: Vous devez réécrire l'expression ou lui appliquer une transform тип.
Я думаю, что смогу добиться успеха с помощью ObjectTypeConverter
как показано here
но ObjectTypeConverter
является EclipseLink
аннотацию, не JPA
поэтому я ищу другой способ сделать это.
Итак, как я могу перечислить перечисление Java в PostgreSQL enum, пожалуйста?
Стандартная JPA не поддерживает пользовательские преобразователи. Вам не повезло, если вы не хотите использовать специальные конвертеры eclipselink, вам нужно использовать либо String, либо Integer. –
Я могу использовать конвертер EclipseLink. Мне было интересно, есть ли более «конвенциональный» и абстрактный способ сделать это. Thx –
Я не могу добиться успеха ... У вас есть код, пожалуйста? –