username unique: true
unique
用途
在資料庫層面限制屬性為唯一
範例
說明
如果屬性必須唯一,請設定為 true
。這是一個持續呼叫,將會查詢資料庫。
有可能(儘管在實務上不太可能)通過唯一性驗證,但後續儲存失敗。如果在 Grails 檢查和實際儲存您的執行個體之間,另一個儲存或更新碰巧更新了資料庫,呼叫將會失敗。防止這種情況發生的唯一方法是在 SERIALIZABLE 隔離層級使用交易,但這對效能非常不利。
|
您也可以透過宣告要包含的其他欄位作為參數值,來定義多欄位 unique
限制。如果只有一個其他欄位,請指定其名稱,但如果有多個欄位,請使用清單,例如
範例
group unique: 'department'
在此範例中,group
名稱在一個 department
中必須唯一,但在不同的部門中可能會有相同名稱的群組,也就是說,群組名稱本身並不唯一。
另一個範例
username(unique: ['group', 'department'])
在此範例中,username
在 group
和 department
中必須唯一。在不同的群組或不同的部門中可能會有相同的登入。
此限制會影響Schema 產生。
錯誤代碼:className.propertyName.unique