【问题标题】:Implementing cross-validation in java在java中实现交叉验证
【发布时间】:2012-07-12 12:21:41
【问题描述】:

我使用 Spring Roo + jpa + hibernate,我想在我的应用程序中实现交叉验证(同时验证多个字段)。

我不确定如何实施它。谁能给我建议和/或指导我查阅相关文件?

【问题讨论】:

标签: spring jpa spring-roo bean-validation cross-validation


【解决方案1】:

看看 Hibernate Validator,它允许实体验证(使用注释)。

http://www.hibernate.org/subprojects/validator.html

简而言之,您可以通过在字段约束上方放置 hibernate 验证器/JPA 注释来注释字段约束。 (例如@Min(10))并使用以下代码查找任何无效字段;

ValidatorFactory factory = Validation.byDefaultProvider().configure().traversableResolver(new CustomTraversableResolver() ).buildValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<BaseValidationObject>> constraintViolations = Validator.validate(myEntityToValidate);

如果您需要验证实体之间的特定关系,您可以编写自定义验证器以满足该需求。

【讨论】:

  • 谢谢!我已经查看了 Hibernate Validator 文档,并且开始掌握它的窍门。不过有一件事我不太明白:你在 spring mvc 应用程序中包含的引导程序在哪里?
  • 嗨 Balteo,我相信这不是必需的,只需添加 Hibernate 验证器 jars 就可以了。如果您遇到困难,请告诉我,我会提供一些更深入的示例。
  • 感谢 Marius 的详细回复。
猜你喜欢
  • 2020-05-30
  • 2016-12-15
  • 2017-11-24
  • 2017-05-04
  • 2020-06-01
  • 1970-01-01
  • 2012-02-04
  • 2018-06-30
  • 2021-07-10
相关资源
最近更新 更多