【问题标题】:Spring Hibernate validation is happening multiple timesSpring Hibernate 验证多次发生
【发布时间】:2015-03-04 18:58:04
【问题描述】:

我正在使用 spring 4 和 hibernate 4 来开发我的应用程序。我创建了自己的自定义验证器来从数据库中进行唯一检查。它工作正常,但是。控制在那里来了两次:

  1. 正常的弹簧验证(这是我实施的并且工作正常)
  2. 当我将数据保存到 DB 中时(我认为 hibernate 正在自行处理,而我的 dao 层调用为空,这就是抛出异常)

我正在使用休眠验证器 5.1 jar。

如何解决我的问题?我必须要么停止第二点,要么让它成功。

现在我不会给你任何代码细节。让我把你想让我放在这里的配置。我会提供的。

HIbernate 配置

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>             
            </props>
        </property>
        <property name="packagesToScan" value="com.app"></property>
    </bean>

【问题讨论】:

    标签: java spring hibernate validation spring-mvc


    【解决方案1】:

    您可以通过将persistence.xml 文件中的validation-mode 属性(javax.persistence.validation.mode) 设置为none 来禁用Hibernate 自动验证模式,如Hibernate 文档中的here 所述

    <validation-mode>NONE</validation-mode>
    

    auto(默认):仅当类路径中存在 Bean Validation 时才启用 Bean Validation 和 Hibernate(回调和 ddl 生成)之间的集成。

    none:禁用 Bean Validation 和 Hibernate 之间的所有集成

    【讨论】:

    • 我认为它会禁用所有的 bean 验证......弹簧验证也是......我对吗?
    • 如文档所述,它将禁用 Hibernate 调用的自动功能
    • 我没有任何persistent.xml ..我正在使用注释...我如何使用注释来做到这一点
    • 我只有一个用于休眠的标签配置..我在上面添加了
    猜你喜欢
    • 2014-04-11
    • 2018-06-20
    • 2014-11-17
    • 2016-12-17
    • 2019-11-08
    • 2016-10-09
    • 2015-05-01
    • 2017-05-15
    • 2014-02-26
    相关资源
    最近更新 更多