В настоящее время я сталкиваюсь с проблемой при попытке сопоставить тип 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.