这是我想做的:
class A {
String string
static constraints = {
string(maxSize:100)
}
}
class B extends A {
static constraints = {
string(url:true)
}
}
所以类 A 应该有一些约束,而 B 应该对相同的属性有相同的附加约束。
我无法让它工作,我可以想象它会与每层次结构表的概念发生冲突。
因此,我尝试通过引入具有 B 类约束的 Command 对象来解决该问题,该约束可以在 B 类的构造函数中进行验证。但是,Command 对象似乎只能在控制器中使用(grails 一直说没有 .validate () 方法)。
所以我的问题是:使用 grails 约束解决这个问题的最优雅的方法是什么(不是手动重新实现验证)?可能...
- 切换到 Table-per-Sub-Class 概念?
- 以某种方式使命令对象在域类中工作?
- 还有什么办法吗?
编辑:我可以在子类中定义所有约束,重复父类的约束,甚至在父类中根本没有约束。但是该解决方案应该适用于同一父类的多个子类(具有不同的约束)。