今天在项目中加入hibernate bean validation.结果遇到了一点问题.由于对hibernate validation不是很了解,一开始没有找对问题的根源.以为是hibernate version的问题.其实不是,是hibernate validation和hibernate transaction整合有一个默认的BeanValidationEventListener.
这个位于hibernate 下的org.hibernate.cfg.beanvalidation.BeanValidationEventListener。会监听所有对实体类进行transaction.commit时的onPreInsert, onPerUpdate, onPerDelete。 这样每次transaction commit就会触发hibernate validation.
这一切原本都没有问题,但是由于我们加入了activiti.在执行异常处理以后forward页面以后执行activiti的查询,再次触发hibernate transaction commit,这样validation就也触发了,结果就是再次抛出同样异常.
解决方案:
1. 在执行activiti查询前进行判断如果request里有异常的errorkey就不执行查询,页面立即返回.
2. 给会返回异常的constraint加入groups(hibernate 默认对default groups的constraint 执行validation)
3. 不执行forward,执行redirect.这样页面上的version就会被更新成新的.(最终采用方案,如果确实读取的是脏数据就还原成数据库里的最新数据是正确的选择)
分享到:
相关推荐
**Hibernate Validation 深度解析与实践指南** Hibernate Validation 是一个强大的 Java Bean 验证框架,它是 JSR-303(Java Bean Validation)规范的实现,后来在 JSR-349 中进行了扩展,增加了更多的验证注解和...
而Hibernate Validation则是Java世界中用于数据验证的主流库,它基于JSR 303和JSR 349标准,提供了丰富的验证规则和易于使用的API。在Spring MVC中集成Hibernate Validation,可以实现对输入数据的有效性检查,从而...
本文将深入探讨Resin如何支持Spring MVC 5.0及以上版本,以及它对Hibernate Validation的支持。 首先,Spring MVC 5.0引入了许多改进和新特性,例如对Java 8的全面支持、更好的类型安全的模型绑定、增强的路径变量...
标题“Hibernate Validation各注解的用法”表明了本文将深入探讨Hibernate Validation框架中使用的各种注解及其应用场景。Hibernate Validation是Java世界中一个强大的数据验证库,它提供了对对象模型的验证规则,...
Hibernate Validator是Hibernate项目的一部分,主要提供了对Java Bean Validation规范的实现。此规范是在Java平台上定义了一套注解和API来校验数据的完整性和准确性。Bean Validation是一种声明式的数据验证方式,...
Hibernate Validation自定义注解校验的实现 Hibernate Validation自定义注解校验的实现是指在Hibernate Validation框架中,使用自定义的注解来实现特定的校验逻辑。在本文中,我们将通过示例代码,详细地介绍如何...
Bean Validation 规范对 Java Bean 的验证流程如下:在实际使用中调用 Validator.validate(JavaBeanInstance) 方法后,Bean Validation 会查找在 JavaBeanInstance上所有的约束声明,对每一个约束调用对应的约束验证...
这主要是通过使用Hibernate Validator来实现数据的验证,它是一个遵循JSR 303(Java Bean Validation)和JSR 349(Java Bean Validation 1.1)标准的实现。本教程将详细介绍如何在Spring MVC中配置并使用Hibernate ...
Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,下面这篇文章主要给大家介绍了关于如何自定义hibernate validation注解的相关资料,...
Hibernate Validation是Java Bean Validation规范的一个实现,这个规范定义了一种标准的方式来声明和执行对象级别的约束。它提供了一种声明式的验证方式,使得在代码中对数据进行验证变得更加简洁。以下是关于...
JAVA中通过Hibernate-Validation进行参数验证 JAVA中通过Hibernate-Validation进行参数验证是JAVA服务器端代码开发中的一种常用技术。在开发JAVA服务器端代码时,我们会遇到对外部传来的参数合法性进行验证,而...
里面含有hibernate-validator 进行校验的jar包,包括了基础hibernate-validator-5.0.0.CR2.jar hibernate-validator-annotation-processor-5.0.0.CR2.jar
`validation`通常指的是Hibernate Validation框架,这是一个符合JSR 303和JSR 349标准的Java Bean验证实现。它允许开发者定义一组约束规则,并在运行时自动检查这些规则,如果违反规则,就会抛出异常。这个框架不仅...
5、Hibernate Validation 5.0 6、Hibernate Search 4.2 (Apache Lucene 3.6) 7、SiteMesh 2.4 8、JQuery 1.9 9、Twitter Bootstrap 2.3.1 10、....其他技术就不讲了,具体参考项目 项目访问: 1)后台后台...
首先,`hibernate-validator-4.1.0.Final.jar`是Hibernate Validation的实现包,它是Java Bean Validation (JSR-303)规范的一个实现。Hibernate Validation提供了对对象属性的约束注解,例如`@NotNull`、`@Size`、`@...
在给定的标题和描述中提到了三个重要的JAR包:`validation-api`, `hibernate-validator`以及`jboss-logging`,它们在数据验证中扮演着不同的角色。 首先,`validation-api-1.0.0.GA.jar`是Java Bean Validation API...
Hibernate Validator 是Java Bean Validation规范的一个实现,它为Java应用程序提供了强大的验证框架。在本文中,我们将深入探讨Hibernate Validator接口及其在Groovy语言中的应用。 1. Hibernate Validator简介 ...
1. 导入校验库:引入Hibernate Validation的jar包,它包含了校验功能所需的类和接口。 2. 配置校验器:在SpringMVC的配置文件中配置校验相关的bean,使Spring能够识别并使用校验器。 3. 注入校验器:将校验器注入到...
Hibernate Validation 6.0 Alibaba Druid 1.1 4、视图层 Bootstrap 3.3 Thymeleaf 3.0 业务流程 1.进入系统登陆页面,医生或患者凭借账号和密码登录进入病人挂号管理平台 2.医生登陆成功后跳转到系统首页展示自己...