Grails 子类的唯一约束

Grails 子类的唯一约束,grails,Grails,我目前有一组域子类,它们通过每个层次结构的表进行映射。基类中的一个属性需要是唯一的,但只能在每个子类中。我最初的想法是使用鉴别器创建多列唯一约束,如下所示: BaseClass { String name static constraints = { name unique 'discriminator' } } 我返回错误: Scope for constraint [unique] of property [name] of class [class Ba

我目前有一组域子类,它们通过每个层次结构的表进行映射。基类中的一个属性需要是唯一的,但只能在每个子类中。我最初的想法是使用鉴别器创建多列唯一约束,如下所示:

BaseClass {
   String name

   static constraints = {
       name unique 'discriminator'
   }
}
我返回错误:

Scope for constraint [unique] of property [name] of class [class BaseClass] must be a valid property name of same class

是否有一种方法可以使用鉴别器实现此目的,或者有另一种方法可以设置每个子类的唯一属性?每个子类切换到table并不是真正的问题。

好吧,那是一个痛苦的几个小时。上面的代码几乎正确,只需要在每个子类中使用discriminator的列名,默认为“class”

SubClass extends BaseClass {
    static constraints = {
        name unique: 'class'
    }
}