Сущность при сохранении регистра прослушивания - PullRequest
5 голосов
/ 01 апреля 2010

Я использую JBoss 6 с Seam, и у меня есть сущность, которую я пытаюсь сохранить, User. Я расширил org.jboss.seam.framework.EntityHome для предоставления класса UserHome и переопределил метод persist(). Я полностью аннотировал свой класс сущностей аннотациями javax.validation. Когда я предоставляю действительные значения для всех полей в моем классе сущности, объект сохраняется без проблем. Когда я нарушаю одно из ограничений проверки, постоянство завершается неудачно, как и ожидалось.

У меня проблема с нарушениями ограничений во время асинхронного сохранения: hibernate не сообщает мне, какое ограничение было нарушено!

javax.validation.ConstraintViolationException: validation failed for classes [com.example.model.User] duringpersist time for groups [javax.validation.groups.Default, ]
at org.hibernate.cfg.beanvalidation.BeanValidationEventListener.validate(BeanValidationEventListener.java:132)
at org.hibernate.cfg.beanvalidation.BeanValidationEventListener.onPreInsert(BeanValidationEventListener.java:71)

Если я принудительно установлю синхронное постоянство, добавив EntityManager.flush() к UserHome.persist(), я смогу перехватить операторы ConstraintViolationException и вывести журнал, содержащий нарушенные ограничения.

Мой вопрос: можно ли зарегистрировать слушателя в hibernate / jboss для нарушений ограничения? Я думаю, что немного нехорошо, что hibernate не печатает нарушения, но, надеюсь, я могу вставить некоторый код, который будет перехватывать и регистрировать их для получения дополнительной информации. В противном случае я понятия не имею, какое ограничение было нарушено.

Спасибо!

1 Ответ

0 голосов
/ 09 мая 2011

Пожалуйста, проверьте эти ссылки, вы получите хорошую информацию:

валидатор-CHECKCONSTRAINTS

additionalmodules

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...