如何启用Spring验证
在将hibernate-validator.jar和javax.validation-api.jar放入我的类路径后,我的旧验证被关闭,org.springframework.dao.DataIntegrityViolationException替换为org.hibernate.exception.ConstraintViolationException,它封装了来自表约束和这引起了很多问题 它自动打开JSR-303验证,因此不再验证任何内容 我必须放这两个罐子才能将Jersey升级到2.4,它依赖于这两个罐子 将这些属性放入hibernate.properties文件没有帮助,hibernate只是忽略它们,但它会在启动时加载这些属性 已从资源hibernate.properties加载属性:{hibernate.validator.apply_to_ddl=false,hibernate.validator.autoregister_listeners=false等}如何启用Spring验证,spring,validation,bean-validation,hibernate-validator,Spring,Validation,Bean Validation,Hibernate Validator,在将hibernate-validator.jar和javax.validation-api.jar放入我的类路径后,我的旧验证被关闭,org.springframework.dao.DataIntegrityViolationException替换为org.hibernate.exception.ConstraintViolationException,它封装了来自表约束和这引起了很多问题 它自动打开JSR-303验证,因此不再验证任何内容 我必须放这两个罐子才能将Jersey升级到2.4,它
javax.persistence.validation.mode=none
hibernate.validator.autoregister_listeners=false
hibernate.validator.apply_to_ddl=false
我将Spring3.2.4与SessionFactory一起使用,并从hbm.xml文件映射资源,其中包含约束、hibernate 3.6.9.final、hibernate validator 5.0.final、javax.validator-api 1.1.0.final
当我的类路径中有hibernate.validator时,我不知道如何启用spring验证,任何帮助都将不胜感激。您可以通过在
hibernate.cfg.xml
中将javax.persistence.validation.mode
设置为none
(或使用JPA时persistence.xml
)来禁用Bean验证
只是出于兴趣,您的模型上似乎有约束注释(否则您不应该看到
ConstraintViolationException
,所以我想知道您为什么不想验证它们?您可以通过在hibernate.cfg.xml
中将javax.persistence.Validation.mode
设置为none
(或者在使用JPA时设置persistence.xml
)来禁用Bean验证)
只是出于兴趣,您的模型上似乎有约束注释(否则您不应该看到
ConstraintViolationException
,所以我想知道您为什么不想验证它们?将hibernate validator添加到类路径会关闭hibernate核心验证,所以我必须添加此属性才能将其重新打开
<prop key="hibernate.check_nullability">true</prop>
true
将hibernate validator添加到类路径会关闭hibernate核心验证,因此我必须添加此属性才能将其重新打开
<prop key="hibernate.check_nullability">true</prop>
true
添加javax.persistence.validation.mode=none hibernate.cfg.xml不起作用。我已经用spring验证机制验证了这些约束,将hibernate.validator添加到我的类路径导致了验证问题,它已成为默认的验证程序。感谢您的回答。您能发布一个stacktrace,其中显示ConstraintViolationException
到底抛出了什么?也许它是Hibernate以外的另一个组件?现在它不会抛出任何异常。我想打开Hibernate验证程序,而不是JSR-303。你知道怎么做吗?我想让它抛出PropertyValueException,多亏了Hibernate验证程序是JSR 303的一个实现(更准确地说,HV 5实现了JSR 349,即Bean验证1.1),因此无法在没有另一个的情况下获得一个。我指的是Hibernate核心验证。目前我无法同时使用这两个(303-349)我需要使用hibernate核心验证。添加javax.persistence.validation.mode=none hibernate.cfg.xml不起作用。我已经用spring验证机制验证了这些约束,将hibernate.validator添加到我的类路径导致了验证问题,它已经成为默认的验证器。谢谢你的回答。你能发布一个stacktrace显示了ConstraintViolationException
的确切抛出位置?可能是Hibernate以外的另一个组件?现在它不会抛出任何异常。我想打开Hibernate验证器而不是JSR-303。你知道怎么做吗?我想让它抛出PropertyValueException,多亏了Hibernate验证器是JSR的一个实现303(更准确地说,HV 5实现了JSR 349,即Bean Validation 1.1),因此无法在没有另一个的情况下获得一个。我的意思是Hibernate核心验证。目前我不能同时使用这两个(303-349),我需要使用Hibernate核心验证。