更新hibernate数据实例时出现错误捕获

时间:2015-03-18 12:40:37

标签: hibernate grails

运行grails 2.3.3我花时间修复了在hibernate数据实例更新期间发生的错误。

只有在检查基础数据表没有被更改时才识别出问题,因为错误捕获没有标记任何问题。

以下是代码:

        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

我可以根据返回值的这个差异来构建一些检查,但我很惊讶没有发生错误。

欢迎有关如何捕获这些数据更新问题的任何建议和想法吗?

顺便提一下,问题是更新过程中数据类型冲突的结果。

-Mike

1 个答案:

答案 0 :(得分:0)

尝试使用.save(failOnError: true, flush: true) failOnError将在保存失败时引发异常。

您可以在Grails documentation中阅读更多相关信息。