Существует ли встроенный конвертер для Y / N и логического значения в JSF и / или SEAM для использования с h: selectBooleanCheckbox? - PullRequest
1 голос
/ 21 мая 2011

Если у объекта есть свойство, определенное как

private String noWstManagedFlg;

и для базы данных установлено ограничение для принудительного применения «Y» или «N». Есть ли встроенный конвертер YN в булево, который я могу использовать с h: selectBooleanCheckbox? Или мне нужно добавить свой собственный конвертер и / или свойство для моей сущности, которое возвращает логическое значение?

<h:selectBooleanCheckbox value="#{entity.noWstManagedFlg}" />

Ответы [ 2 ]

2 голосов
/ 21 мая 2011

В Seam такого конвертера нет, но если ваша реализация JPA - Hibernate, вы можете сопоставить это свойство с типом 'yes_no' и иметь логическое значение в сущности.

@Type(type= "yes_no")
private boolean noWstManagedFlg;
0 голосов
/ 23 сентября 2011

Из опыта и того, что я прочитал h: selectBooleanCheckbox не поддерживает конвертеры. Я написал конвертер, который будет конвертировать "Y" / "N" в true / false. Метод «getAsString» вызывается так, как вы ожидаете, но метод «getAsObject» никогда не вызывается. @Stefano - правильный путь, лучше всего использовать Hibernate «yes_no» или «true_false» Type в свойстве объекта.

Я столкнулся с проблемой при использовании '@Type (type = "yes_no")'. Прежде всего, hibernate не смог правильно преобразовать строки "Y" / "N" в значения true / false. А во-вторых, попытка обновить сущность приведет к зависанию программы. Использование следующего сопоставления решило эти проблемы для меня, и теперь все работает как положено.

@Type(type = "org.hibernate.type.YesNoType")
private boolean noWstManagedFlg;
...