Каким должен быть тип данных удаленных полей? - PullRequest
1 голос
/ 01 февраля 2012

При проектировании базы данных я использовал удаленное имя поля и использовал его как Boolean.Все вроде нормально.

Я использую спящий режим 3.6.9.Поэтому я настроил applicationContext

prop key = "hibernate.query.substitutions"> true = 1 false = 0

В моем сеансе Factory bean.Поэтому, когда я сохраняю свой объект, он конвертирует мой логический тип как 1/0.Но проблема в том, что когда я получаю объект из базы данных, я получаю

java.lang.ClassCastException: java.lang.Integer не может быть приведен к java.lang.Boolean

Может кто-нибудь из вас подскажет, как решить эту проблему?

1 Ответ

1 голос
/ 01 февраля 2012

Я бы предположил, что hibernate.query.substitutions работает только для запросов, но не для сущностей.

Я бы попытался реализовать пользовательский тип пользователя, который отображает логическое значение на 1 или 0. И затем использовать этот пользовательский тип для аннотирования логического поля моей сущности.

@org.hibernate.annotations.Typ(type="com.example.Boolean01Type")
private boolean deletes; 

Посмотрите в этом блоге пример того, как реализовать пользовательский тип. ( Я не уверен на 100%, но я помню, что в гибернации было как-то два понятия пользовательских типов, одно более мощное, чем другое )

Но обязательно взгляните на стандартный пользовательский тип yes_no, который действительно близок к тому, который вам нужно написать.

 @org.hibernate.annotations.Type(type="yes_no")
 boolean myBoolean;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...