以下の問題を教えてください。
テーブルにマップしたくない2つのドメインクラス(親、子)があるので、mapWith=none
. しかし、そうするときはparent.validate()
、検証を子にカスケードする必要があります。テーブルにマップされていないドメイン オブジェクトのカスケード検証を有効にするにはどうすればよいですか?
よろしくお願いします!
以下の問題を教えてください。
テーブルにマップしたくない2つのドメインクラス(親、子)があるので、mapWith=none
. しかし、そうするときはparent.validate()
、検証を子にカスケードする必要があります。テーブルにマップされていないドメイン オブジェクトのカスケード検証を有効にするにはどうすればよいですか?
よろしくお願いします!
設計上できるかどうかはわかりません。
オプションで、親オブジェクトに customValidation() メソッドを追加して、子をループし、それらの validate() メソッドを呼び出すチェックを開始できます。子のエラーは、親オブジェクトのエラー オブジェクトに追加できます。
boolean cascadedValidation() {
this.validate();
children.each {
if (!it.validate()) {
it.errors.allErrors.each { err ->
// Bind somewhere on parent object
}
}
}
return this.hasErrors();
}