2016-09-16 85 views
4

我目前有一组域映射到每个层次结构的子类。基类中的一个属性需要是唯一的,但只能在每个子类中使用。我最初的想法是使用鉴别器来创建一个多列唯一约束,这样的事情:子类的唯一约束条件

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 

是否有使用鉴别的方法这个目的还有另一种方法去设置每个子类的唯一属性?切换到每个子类不在桌面上。

回答

2

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

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