【问题标题】:How do you turn off Hibernate bean validation with JPA 1.0?如何使用 JPA 1.0 关闭 Hibernate bean 验证?
【发布时间】:2011-03-30 03:46:28
【问题描述】:

如何在 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 实现中做到这一点?

【问题讨论】:

    标签: hibernate validation


    【解决方案1】:

    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 的版本)。

    参考文献

    【讨论】:

    • 从类路径中删除验证 JAR... 好吧,我希望在进行所有研究之前我有这样一个减法的想法。大 DOH 效应。谢谢!现在我删除了 JAR,我开始意识到,当我通过实体管理器从数据库中读取实体时,这并没有帮助我最初尝试解决有关 MySQL ENUM 的异常。又没主意了。
    猜你喜欢
    • 1970-01-01
    • 2015-08-29
    • 2016-01-01
    • 1970-01-01
    • 2011-12-08
    • 2013-06-04
    • 2012-09-15
    • 2015-05-01
    • 1970-01-01
    相关资源
    最近更新 更多