3

我们如何使用 hibernate 验证器 3.1.0.GA 执行跨字段验证

创建表用户 (id, start_date, end_date, ...) 例如,学生的大学毕业完成日期应大于毕业开始日期

我们如何强制执行此操作,以便验证消息可以在保存/更新操作的 UI 中显示。UI 使用 JSF、Richfaces 构建

4

4 回答 4

2

您可以通过创建自定义验证器来做到这一点。文档中有更多信息。

于 2010-01-15T17:23:10.480 回答
0

尝试这个:

public class User {

  private Date startDate = null;
  private Date endDate = null;

  @SuppressWarnings("unused")
  @AssertTrue(message="college graduation finishing date for a student should be greater than the graduation start date")
  private boolean dateValidation() {
    return this.startDate < this.endDate;
  }
}
于 2010-01-20T18:03:11.467 回答
0

对于这种方法

@SuppressWarnings("unused")

@AssertTrue(message="college graduation finishing date for a student should be greater than the graduation start date") private boolean dateValidation() { return this.startDate < this.endDate; }

为了有效,它需要符合标准 bean 规范,这意味着 get/set/ 或 "is" 前缀。isDateValid() 可以工作-

于 2010-04-20T15:29:47.630 回答
0

请参阅使用 Hibernate Validator (JSR 303) 进行跨字段验证中的重复问题(和答案)

简而言之,创建一个自定义类级别验证器,将类级别 ConstraintViolation 与正在验证的特定字段相关联。

于 2010-01-20T23:26:30.147 回答