Отключение проверки Hibernate при сохранении/обновлении с помощью Hibernate 3.6.0.Final

Я только что начал обновлять приложение, использующее Hibernate 3.5.6.Final до 3.6.0.Final, и было несколько hickup. Последний hickup я не могу найти решение для.

3.6.0. Final, по-видимому, автоматически включает проверку bean при сохранении/обновлении объекта с помощью Hibernate. Это очень плохо, потому что некоторые из моих тестов не беспокоят установку всех свойств - они просто не нужны. Я, честно говоря, не вижу смысла устанавливать каждое поле описания и бесчисленные другие поля только для того, чтобы выполнить какую-либо произвольную проверку.

Это заставит меня часами делать действительные объекты во всех моих тестах (сейчас у меня более 1300 функциональных тестов). И, честно говоря, было бы бессмысленно, потому что я уверен, что вся проверка выполняется в MVC, и нет других способов получить данные в базе данных в настоящее время.

Я также не хочу подвергать себя результату, проверяя мой beans дважды - один раз в MVC, а затем еще один раз в Hibernate. Это просто не нужно в моем случае.

Есть ли способ отключить это? Я использую Spring и регулярные файлы сопоставления Hibernate, а не JPA (мне не нравятся все аннотации).

Ответ 1

Добавьте в persistence.xml следующее:

<validation-mode>NONE</validation-mode>

или добавьте свойство в hibernate.cfg.xml:

<property name="javax.persistence.validation.mode">none</property>

См. 23.1.2. Конфигурация для получения дополнительных параметров.

Ответ 2

Задайте для свойства hibernate.validator.autoregister_listeners значение false. Вы также можете установить hibernate.validator.apply_to_ddl в значение false.