2010-03-31 18 views
5

estoy usando JBoss 6 con la costura, y tengo una entidad que estoy tratando de persistir, User. He ampliado org.jboss.seam.framework.EntityHome proporcionar una clase UserHome y han anulado el método persist(). He anotado a fondo mi clase de entidad con anotaciones de javax.validation. Cuando proporciono valores válidos para todos los campos en mi clase de entidad, el objeto se conserva sin problemas. Cuando violo una de las restricciones de validación, la persistencia falla como se esperaba.Entidad persistir registrarse validación oyente

El problema que estoy teniendo es con violaciónes de restricción durante la persistencia asíncrono: hibernación no me dice lo que la restricción ha sido violada!

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) 

Si fuerzo persistencia síncrona mediante la adición de EntityManager.flush()-UserHome.persist(), entonces puede coger las declaraciones ConstraintViolationException y registro de salida que contiene las restricciones violadas.

Mi pregunta: ¿es posible registrar un oyente con Hibernate/JBoss para las violaciónes de restricción? Creo que es un poco cojo que hibernate no imprima las violaciones, pero con suerte puedo insertar algún código que atrape y logge para obtener más información. De lo contrario, no tengo idea de qué restricción se violó.

Gracias!

+0

favor, que sus respuestas a continuación respuesta – developer

Respuesta

0

favor verifique estos enlaces, obtendrá una buena información:

validator-checkconstraints

additionalmodules

+0

Gracias por los enlaces, pero esto no resuelve mi pregunta. – purecharger

+0

Creo que si lee el primer enlace de Damodar encontrará lo que necesita en el ejemplo 6.1. Intenta extender javax.validation.groups.Default y coloca tu clase en el xml. Tuve un problema similar y eliminé las anotaciones de validación y funcionó según las necesidades. –

Cuestiones relacionadas