Я создаю таблицу БД с использованием hbm2ddl с кодом Java, подобным следующему:
@Entity
public class Filter {
public enum Type {
TypeA, TypeB;
}
@Enumerated(EnumType.STRING)
private Type type;
}
Работает нормально, но для "типа" создается столбец VARCHAR, т. Е. Код DDL выглядит следующим образом:
CREATE TABLE IF NOT EXISTS `filter` (`type` varchar(255) DEFAULT NULL)
Но то, что я хочу иметь, это:
CREATE TABLE IF NOT EXISTS `filter` (`type` enum('TypeA','TypeB') NOT NULL)
Можно ли это объявить в Hibernate, предпочтительнее с аннотациями?
Или есть способ расширить SchemaUpdate и перезаписать метод, который визуализирует часть сценария alter для перечисляемого поля, как мне нравится?
Справочная информация: та же база данных используется в части проекта PHP, и я хочу предотвратить вставку недопустимых значений.