我目前有一组通过 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

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

最佳答案

那真是令人痛苦的几个小时。上面的代码几乎是正确的,只需要在每个子类中并使用鉴别器的列名,默认为'class'。

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

关于grails - 子类的唯一约束,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39540409/

10-12 12:49
查看更多