grails – 子类的唯一约束

我目前有一组域子类,通过table-per-hierarchy映射.基类中的一个属性需要是唯一的,但只能在每个子类中.我最初的想法是使用鉴别器来创建一个多列唯一约束,如下所示:

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

有没有办法为此目的使用鉴别器或另一种方法来设置每个子类唯一的属性?切换到每个子类的表并不是真的在桌面上.

最佳答案 那是一个令人痛苦的几个小时.上面的代码几乎是正确的,只需要在每个子类中使用鉴别器的列名,默认为’class’.

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