2016-09-29 10 views
0

私はクラスがあります。 クラスフィールドを使用できる制約(Hibernate Validator)はありますか?

public class QueryFilterDTO { 

@NotEmpty 
private List<String> senders; 

@NotEmpty 
private List<String> subjects; 

private Date startDate; 
private Date endDate; 

@NotEmpty 
private List<String> countries; 

@NotEmpty 
private List<String> companySizes; 

public QueryFilterDTO() { 

} 

をそして私は日付の検証を行う必要があります。startDateendDateを超えてはなりません。 しかし、私はHVのようなものは見つけられませんでした。

自分で実装する必要がありますか? (custom constraints

答えて

0

は、おそらく最も簡単な方法は、このようなものです:Hibernateバリをそれをしないように

@PrePersist 
protected void validateDates() { 
    if(startDate.after(endDate){ 
    //throw a new custom validation exception.. 
    } 
} 
+0

私は例外をスローするにはどうすればよいですか? (たとえば、NotEmptyフィールドが空の場合)。 – Woland

+0

実際に動作しているかどうかをテストして確認するには、次のようなことをするだけです:throw new runtimeException( "startDateはendDateより後であってはいけません"); – GavinF

+0

PrePersistが遅すぎます。作成する前にオブジェクトを検証する必要がありますが、DBに書き込む前に検証する必要はありません。 – Woland

関連する問題