私はカスタム制約を検証したいネストされたクラスをいくつか持っています。ただし、カスタム制約のバリデータでは、Childクラスのフィールドがnullでないか、NPEをスローする必要があります。GroupSequenceを使用してネストされたBeanを検証し、すべてのグループを一度に適用する
カスタム制約とデフォルト制約がすべて同じクラスにある場合、GroupSequenceを使用して、他の制約を適用する前に1組の制約を適用できます。私の例のコードは、Groovyである
@MyConstraint(groups = SecondPass)
@GroupSequence([Parent, SecondPass])
class Parent {
@Valid
Child child
}
class Child {
@NotNull
String cannotBeNull
}
注:
は私は、ネストされたクラスと似た何かをしようとしている設定は、次のようになります。
ネストされたクラスでは、HibernateのValidatorImplは、指定されたすべてのグループを最初にParentに、次にChildに適用しようとしているようです。したがって、cannotBeNullがnullかどうかを確認する前に、MyConstraintの検証を試み、存在する場合はNPEをスローします。
GroupSequenceの後のグループで制約を検証する前に、バリデータが(単一の検証呼び出しで)オブジェクトグラフ全体を1つのグループに対して検証する方法がありますか?