我遇到了以下情况:GORM无法检测到对象已更改,因此既不会失败也不会生成sql UPDATE语句。换句话说:
//by the time I get here, it doesn't do anything good or bad
team.save(failOnError:true, flush:true)
//doesn't throw an error, doesn't log an UPDATE statement
是否有一种方法可以强制GORM运行更新语句,而不考虑实例是否需要更新?
答案 0 :(得分:0)
如果实例未附加到休眠会话或处于只读模式时设置了值,则会发生这种情况。如果您在这样的实例上设置属性,然后决定保存它,则可以执行以下操作:
<A Domain Csass nam reference here>.withSession{session->
if(!item.isAttached()){
item.attach();
}
else if(session.isReadOnly(item)){
session.setReadOnly(item,false)
}
item.properties=item.properties // force gorm to see changed properties; comes with data binding overhead though
item.save(failOnError:true)//should generate update now
}
答案 1 :(得分:0)
您可以尝试以下操作:
team.markDirty()
team.save()