如何在JPA 1.0环境中使用Hibernate 3.x关闭bean验证?
我用persistence.xml尝试了几件事:
<persistence-unit name="bbstats" transaction-type="RESOURCE_LOCAL">
<properties>
DB stuff
<property name="javax.persistence.validation.mode" value="none" />
<property name="hibernate.validator.autoregister_listeners" value="false" />
</properties>
<validation-mode>NONE</validation-mode>
</persistence-unit>
最后一个导致
org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'validation-mode'. One of '{"http://java.sun.com/xml/ns/persistence":jta-data-source, "http://java.sun.com/xml/ns/persistence":non-jta-data-source, "http://java.sun.com/xml/ns/persistence":mapping-file, "http://java.sun.com/xml/ns/persistence":jar-file, "http://java.sun.com/xml/ns/persistence":class, "http://java.sun.com/xml/ns/persistence":exclude-unlisted-classes, "http://java.sun.com/xml/ns/persistence":properties}' is expected.
但上述工作无关紧要。谁能告诉我如何在JPA 1.0实现上做到这一点?
答案 0 :(得分:7)
javax.persistence.validation.mode
属性是JPA 2.0的标准属性之一。它不会指望它在JPA 1.0环境中工作。
实际上,假设你正在使用Hibernate Validator 4,我的建议是从类路径中删除JAR(我不确定Hibernate Validator 3的配置设置是否仍然适用)。
如果您使用的是Hibernate Validator 3,则在插入或更新之前,以下内容应禁用生成的DDL和实体验证中的约束支持:
<property name="hibernate.validator.apply_to_ddl" value="false"/>
<property name="hibernate.validator.autoregister_listeners" value="false"/>
但是从类路径中删除JAR也很简单。
如果您遇到更具体的问题,请提供更具体的详细信息(包括Hibernate Validator的版本)。