2016-02-10 57 views
0

假設ID是我的用戶表的唯一領域,我有兩個設定的唯一約束。所以,如果我有一個值與ID 2名「robel」,爲什麼下面的代碼給我驗證異常?Grails的唯一驗證異常節省

User old = UserFindByName("robel") 
old.setName("changed") 
old.save(failOnError: true) 
User neew = new User(name:"robel") 
neew.save(failOnError: true) 

我試着設置斷點,然後如果值保存neew一改之前檢查,我相信它的改變,但最後一行是給我一個異常說名字:「robel」需求是獨一無二的。爲什麼會發生這種情況?

回答

2

你應該flush changes添加新的實例之前。變化:

old.save(failOnError: true) 

到:

old.save(failOnError: true, flush: true)