我如何基本上對字符串數據類型字段執行唯一約束。Grails中不區分大小寫的唯一約束
class User{
String username
String Email
static hasMany = [roles:Roles]
static constraints = {
Email(email:true)
username(unique:true)
}
}
是否有實現username(unique: true)
什麼簡單的辦法還是必須手動檢查使用像.findByNameLike
方法的數據庫?
用戶名應該是唯一的,但唯一性應該是不區分大小寫的。
好答案!我認爲你自定義的驗證器在更新「用戶名」時可能會有問題。請參閱http://n4.nabble.com/Case-Insensitive-Constraint-td1359204.html。不知道雖然... – 2010-03-29 13:14:54
Omg! 是@海因裏希你是對的,當我嘗試更新相同的字段時,它確實失敗。 – WaZ 2010-03-29 13:41:37
用戶名(驗證:{VAL,OBJ - > DEF similarUser = User.findByUsernameILike(VAL) 返回similarUser ||(obj.id == similarUser.id) !}) 請告訴我obj.id的目的&&在條件。我刪除它,它仍然正常工作。 – WaZ 2010-03-29 14:06:49