Я хочу иметь столбец для объекта, который принимает только одно из перечисленного набора значений. Например, допустим, у меня есть класс POJO / сущности "Pet" со столбцом String "petType". Я хочу, чтобы petType допускал только одно из трех значений: "кошка", "собака" или "горилла". Как бы я мог аннотировать метод getPetType (), чтобы создать ограничение уровня базы данных, которое обеспечивает это?
Я разрешаю Hibernate создавать или обновлять мою таблицу базы данных при запуске приложения через свойство Hibernate "hbm2ddlauto", для которого установлено значение "update".
Я пытался использовать параметризованный тип пользователя в связи с аннотацией @Type, но, похоже, это не создает каких-либо ограничений для самого столбца базы данных. Похоже, нет способа указать такого рода ограничения в аннотации @Column, кроме использования некоторого SQL с элементом columnDefinition, и я не решаюсь пойти по этому пути, поскольку кажется, что все, что я использую там, не будет кроссплатформенность / независимость от базы данных (важно для меня, так как я запускаю свой код в производственной среде на Oracle, но я тестирую локально, используя HSQLDB и Derby). Может быть, то, что я хочу сделать, просто невозможно сделать с помощью аннотаций.
Заранее благодарим за любые идеи, которые вы можете дать мне по этой теме.