首页 > 解决方案 > java validator.validate() 方法需要更长的时间来验证

问题描述

我有父母和多个孩子的关系,其中一位父母有很多孩子。我正在使用 validator.validate 方法根据应用程序功能验证父实体和子实体。但是它需要更长的时间来验证,有时它会给出超时错误。

我引用了这个链接http://forum.spring.io/forum/spring-projects/web/114639-performance-issues-using-localvalidatorfactorybean并使用了 Validation.buildDefaultValidatorFactory().getValidator() [虽然我还没有完全测试但是看到性能改进但在子记录中看到了一些数据问题,我不确定这是因为我创建了单个验证器实例而发生的]

xml配置-->

<bean id="validatorFactory" class ="org.springframwork.beanvalidator.LocalValidatorFactoryBean">
<property name="provider" class ="org.hibernate.validator.HibernateValidator"

Java 类 -->

public class MyValidator implements...{

 private Validator validator;

  MyValidator(ValidationFactory factory){
   this.validator=factory.getValidator();
  }

  public void doValidation(){
    //here it is taking lot of time
    validator.validate(objtobevalidated,myvalidationrules);
  }

我正在使用 java 1.7,web sphere 8.5

我的问题是——

1)我正在使用 hibernate-validator-4.0.jar 并且它是使用 WebSphere 8.5 提供的。为了提高性能我需要使用更高的 hibernate-validator 版本 4.3 系列还是 5.0 系列

2)由于我使用 Validation.buildDefaultValidatorFactory().getValidator() 创建了单个验证器实例,因此它是否仅验证单个记录,并且在验证父级及其子级期间将忽略剩余记录。

标签: javaspringhibernate

解决方案


推荐阅读