运行grails 2.3.3我花了一些时间来修复在休眠数据实例更新期间发生的错误。
我仅在检查基础数据表未更改时才发现问题,因为错误陷阱未标记任何问题。
这是代码:
try{
currSlot.properties = currSlotBindMap
// currSlot.properties updated now save all upd transactions dB
try{
def saveRtn = currSlot.save(flush: true)
}
catch (Exception eWrite)
{
returnValue = null
}
}
catch (Exception eWrite)
{
returnValue = null
}
属性设置或刷新保存都不会产生任何错误-但是更新从未出现在基础数据存储中。
出现任何问题的唯一迹象是,当保存失败时,saveRtn设置为空值,而当保存成功时,saveRtn包含已保存实例的ID:
saveRtn: homevu1.VidSlotData : 868
我可以根据返回值的这种差异建立一些检查,但是我很惊讶没有发生错误。
欢迎提供有关如何解决此类数据更新问题的任何建议和想法吗?
顺便说一句,问题是由于更新期间数据类型冲突导致的。
-麦克风
最佳答案
尝试使用.save(failOnError: true, flush: true)
,如果保存失败,failOnError
会引发一个异常。
您可以在Grails documentation中阅读有关它的更多信息。
关于hibernate - 更新 hibernate 数据实例时捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29122341/