3

hibernate バリデーター 3.1.0.GA でクロスフィールド検証を実施するにはどうすればよいですか

create table user (id, start_date, end_date, ...) 例: 学生の大学卒業の終了日は、卒業の開始日より後にする必要があります

保存/更新操作時に検証メッセージを UI に表示できるように、これをどのように強制するか。UI は JSF、Richfaces を使用して構築されています。

4

4 に答える 4

2

これを行うには、カスタム バリデータを作成します。詳細については、ドキュメントを参照してください。

于 2010-01-15T17:23:10.480 に答える
0

Hibernate Validator (JSR 303) を使用したクロスフィールド検証で重複した質問 (および回答) を参照してください。

つまり、クラス レベル ConstraintViolation を検証対象の特定のフィールドに関連付けるカスタム クラス レベル バリデーターを作成します。

于 2010-01-20T23:26:30.147 に答える
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 に答える