org.springframework.beans.factory.BeanCreationException: Error creating bean...
org.hibernate.cfg.beanvalidation.BeanValidationEventListener - 来为Hibernate Validator服务. 当一个PreInsertEvent
, PreUpdateEvent
或 PreDeleteEvent
事件发生的时候, 这个监听器就可以对该事件所涉及到的实体对象进行校验, 如果校验不通过的话, 则抛出异常. 默认情况下, Hibernate在对每个对象进行保存或者修改操作的时候,都会对其进行校验, 而删除操作则不会. 你可以通过javax.persistence.validation.group.pre-persist, javax.persistence.validation.group.pre-update 和 javax.persistence.validation.group.pre-remove属性来定义对应事件发生的时候, 具体要校验哪(些)个校验组, 这个属性的值是要应用的校验组类的全路径, 使用逗号分隔. 例?7.1 “自定义BeanValidationEvenListener”显示了这几个属性在Hibernate内部定义的默认值, 所以, 你不需要在你的应用中再重复定义了.
如果发生了违反约束条件的情况, 该监听器会抛出一个运行时的ConstraintViolationException
异常, 此异常包含了一系列的ConstraintViolation
对象用于描述每个违反了约束条件的情况.
?
? ? ? 如果类路径上有Hibernate Validator, 则Hibernate Annotations (或 Hibernate EntityManager)会自动调用它, 如果你想避免这种情况, 可以设置javax.persistence.validation.mode属性为none
.
?
参考:http://docs.jboss.org/hibernate/validator/4.2/reference/zh-CN/html/validator-integration.html