| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > тип ENUM в Hibernate |
| Автор: fath_fast 9.7.2008, 20:41 | ||
| САБЖ! не знаю как. Нашёл только это http://appfuse.org/display/APF/Java+5+Enums+Persistence+with+Hibernate А есть менее громоздкий вариант? что-то вроде:
|
| Автор: ivg 10.7.2008, 00:45 |
| По моему ничего делать то и не надо. Hibernate сам с этим разбирается. Ну или я не понял в чём загвоздка. |
| Автор: fath_fast 10.7.2008, 05:17 | ||
ivg,
Просто хотелось немного ему помочь в этом |
| Автор: fath_fast 10.7.2008, 06:23 | ||||
Кстати, не заботится об этом Hibernate сам, если вот такой аннотацией
определить столбей типа ENUM, то получится ИСключение:
|
| Автор: ivg 10.7.2008, 08:49 |
| Какойто у вас неправильный мёд © Нельзя ли поподробнее? |
| Автор: fath_fast 10.7.2008, 09:21 | ||
| ivg, поподробней? Пожалуйста! Есть в одной таблице БД (MySql) один столбец, который в принципе должен принимать только одно из двух значений true или false... А это значит неплохо бы заюзать тип ENUM в БД... Но за незнанием способа описать свойства этого стобца при помощи аннотаций в Hiberante, приходиться обходиться обычным VARCHAR (в БД). я предпринял попытку подсунуть хибернэйту столбец типа ENUM, а в аннотациях указал только @Column(name = "st") (st - это поле в БД)... На что Hibernate тут же на меня возмутился сим исключением :
Вот. |
| Автор: ivg 10.7.2008, 11:42 | ||||
Вот пример решения, как вы хотели. Обратите внимание, оно не переносимо и будет работать только с MySQL. Так же строка enum в значении columnDefinition должна быть в нижнем регистре, иначе валидация не проходит. |
| Автор: fath_fast 10.7.2008, 14:43 |
| ivg, Большое спасибо! |
| Автор: heizer 23.3.2009, 12:58 |
| можно так columnDefinition = "enum" етого хватает |