Межполевая проверка с помощью Hibernate Validator (3.1.0.GA) - PullRequest
3 голосов
/ 15 января 2010

Как мы осуществляем межполевую проверку с помощью средства проверки гибернации 3.1.0.GA

создать таблицу user (id, start_date, end_date, ...) например дата окончания колледжа для студента должна быть больше даты начала выпуска

Как мы обеспечиваем это, чтобы сообщения проверки могли отображаться в пользовательском интерфейсе при операциях сохранения / обновления. Пользовательский интерфейс построен с использованием JSF, Richfaces

Ответы [ 4 ]

2 голосов
/ 15 января 2010

Вы делаете это, создавая пользовательский валидатор. В документации есть больше информации .

0 голосов
/ 20 апреля 2010

для этого подхода

@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 () будет работать-

0 голосов
/ 21 января 2010

См. Мой повторяющийся вопрос (и ответ) в Проверка по полям с помощью средства проверки гибернации (JSR 303)

Короче говоря, создайте собственный валидатор уровня класса, который связывает уровень ConstraintViolation с конкретными проверяемыми полями.

0 голосов
/ 20 января 2010

Попробуйте это:

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;
  }
}
...