我们如何使用hibernate验证器3.1.0.GA
强制执行交叉字段验证创建表用户(id,start_date,end_date,...) 例如大学毕业完毕日期为学生应大于毕业开学日期
我们如何强制执行此操作,以便在保存/更新操作的UI中显示验证消息。 UI使用JSF,Richfaces
构建答案 0 :(得分:2)
您可以通过创建custom validator.来完成此操作。the documentation中有更多信息。
答案 1 :(得分: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;
}
}
答案 2 :(得分:0)
在Cross field validation with Hibernate Validator (JSR 303)
中查看我的重复问题(和答案)简而言之,创建一个自定义类级别验证器,将类级别ConstraintViolation与要验证的特定字段相关联。
答案 3 :(得分: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()可以工作 -