これが私がやりたいことです:
class A {
String string
static constraints = {
string(maxSize:100)
}
}
class B extends A {
static constraints = {
string(url:true)
}
}
したがって、クラス A にはいくつかの制約が必要であり、Bには同じプロパティに同じ制約と追加の制約が必要です。
私はそれを機能させることができませんでした.Table-per-Hierarchyの概念と衝突することは想像できます.
そこで、クラス B のコンストラクターで検証できるクラス B の制約を持つ Command オブジェクトを導入することで、この問題を回避しようとしました。ただし、Command オブジェクトはコントローラー内でのみ使用できるようです (grails は、.validate がないと言い続けています)。 ()そのための方法)。
だから私の質問は: grails 制約を使用してこれを解決する最もエレガントな方法は何ですか (検証を手動で再実装するのではありません)? になり得る...
- Table-per-Sub-Class コンセプトに切り替えますか?
- コマンド オブジェクトをドメイン クラスで動作させるにはどうすればよいですか?
- その他の方法で?
編集:親クラスの制約を繰り返すか、親クラスに制約をまったく持たなくても、子クラスのすべての制約を定義しても問題ありません。ただし、ソリューションは、同じ親クラスの複数の子クラス (異なる制約を持つ) に対して機能するはずです。