1

将 hibernate-validator.jar 和 javax.validation-api.jar 放入我的类路径后,我的旧验证关闭,org.springframework.dao.DataIntegrityViolationExceptionorg.hibernate.exception.ConstraintViolationException替换,它包装了来自的 SQL 异常表约束,这导致了很多问题。

它自动打开了 JSR-303 验证,因此不再验证任何内容。

我必须放这两个 jar 才能将 Jersey 升级到 2.4,它依赖于这两个 jar。

将这些属性放入 hibernate.properties 文件没有帮助,hibernate 只是忽略它们,但它会在启动时加载属性

从资源 hibernate.properties 加载的属性:{hibernate.validator.apply_to_ddl=false,hibernate.validator.autoregister_listeners=false 等}

javax.persistence.validation.mode=none
hibernate.validator.autoregister_listeners=false
hibernate.validator.apply_to_ddl=false

我正在使用带有 SessionFactory 的 Spring 3.2.4 并从带有约束的 hbm.xml 文件映射资源,hibernate 3.6.9.final,hibernate-validator 5.0.final,javax.validator-api 1.1.0.Final

当我的类路径中的 hibernate.validator 时,我只是无法弄清楚如何启用弹簧验证,任何帮助将不胜感激。

4

2 回答 2

1

您可以通过在您的(或使用 JPA 时)设置javax.persistence.validation.mode为来禁用 Bean 验证。nonehibernate.cfg.xmlpersistence.xml

只是出于兴趣,您的模型上似乎有约束注释(否则您不应该看到 a ConstrainViolationException,所以我想知道您为什么不想验证它们?

于 2013-11-11T08:11:14.620 回答
0

将休眠验证器添加到类路径会关闭休眠核心验证,因此我必须添加此属性才能将其重新打开

<prop key="hibernate.check_nullability">true</prop>
于 2013-11-12T19:56:24.987 回答