我们假设名称和 id 是我的用户表中的唯一字段,并且我为这两个字段设置了唯一的约束。因此,如果我的值为 id 2 , name" robel" ,为什么以下代码会给我验证例外?
User old = UserFindByName("robel")
old.setName("changed")
old.save(failOnError: true)
User neew = new User(name:"robel")
neew.save(failOnError: true)
我尝试设置断点并在保存 neew 之前检查旧的值是否已更改,我确定它已更改但最后一行给了我一个例外说法名:" robel"需要是独特的。为什么会发生这种情况?
答案 0 :(得分:2)
在添加新实例之前,您应该flush changes。变化:
old.save(failOnError: true)
为:
old.save(failOnError: true, flush: true)