41
唯一約束

假設一個簡單的Grails領域類:Grails領域類:多列

class Account { 
    String countryId; 

    String userName; 

    String password; 

    static constraints = { 
     ...???... 
    } 
} 

它要求用戶名是唯一的特定 countryId,因此必須有一個獨特 contraint在兩列。如何在限制中表達這個定義?

+4

我在瀏覽網頁,特別是沒有計算器找到答案。最後,我在[Grails參考](http://grails.org/doc/1.0.x/ref/Constraints/unique.html)中找到了解決方案,但所有其他Grails文檔示例僅包含單個列的情況。不知道在8小時內不允許自我回答 – rainer198

回答

73
userName(unique: ['countryId']) 

可以包括構成必須在用戶名中的「獨一無二」的約束需要考慮的其他屬性陣列中的許多其他屬性。

因此,舉例來說,如果你想使userName一個countryIdprovinceId中是唯一的,將是這樣的:

userName(unique: ['countryId', 'provinceId'] 
+1

你與grails搖滾 –

+0

在grails 3中它被寫爲「userName unique:'countryId'」 http://docs.grails.org/latest/ref/Constraints /unique.html –

+2

@CarlosParraga這只是同一事物的變體。同樣的語法也可以用於3.x之前的Grails版本。 –