2016-09-16 116 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' 
    } 
}