Исключение проверки схемы для сопоставления типа ENUM MySQL с перечислением Hibernate Entity - PullRequest
0 голосов
/ 28 января 2020

В настоящее время я сталкиваюсь с проблемой при попытке сопоставить тип MYSQL ENUM с моим типом перечисления Hibernate JPA. Я получаю ошибку проверки схемы. У меня есть простое перечисление в Java:

public enum Gender {
    MALE,
    FEMALE
}

Соответствующее определение столбца для этого в MySQL Таблица:

`gender` enum('MALE','FEMALE') DEFAULT NULL,

Аннотации в классе Entity для этого конкретный атрибут:

   @Enumerated(EnumType.STRING)
   @Column(name = "gender", columnDefinition="enum('MALE','FEMALE')")
   private Gender gender;

Я получаю сообщение об ошибке:

Проверка схемы: обнаружен неправильный тип столбца в столбце [пол] в таблице [...]; найдено [enum (Types # CHAR)], но ожидается [enum('MALE','FEMALE') (Types # VARCHAR)]

Я пытался не использовать columnDefinition в аннотации @Column, и ошибка:

Проверка схемы: обнаружен неправильный тип столбца в столбце [пол] в таблице [...]; найдено [enum (Types # CHAR)], но ожидается [varchar (255) (Types # VARCHAR)]

Я также попытался написать собственный конвертер согласно инструкциям в: https://thoughts-on-java.org/hibernate-enum-mappings/#customizedMapping но это тоже не помогло.

Любая идея?

Примечание: Когда я использовал EclipseLink, не было проблем с моей сущностью для того же определения БД и без явного определения моего columnDefinition в @Column. Я начал сталкиваться с этой проблемой, когда я удалил EclipseLink. Проект использует Spring Data JPA прямо сейчас. Используется Hibernate Core 5.3.14.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...