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

标签 hibernate grails

运行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/

相关文章:

java - UnsupportedOperationException - 应用程序必须提供 JDBC 连接

performance - 我不了解此性能问题

grails - <g :applyLayout/> and <g:render template/> 和有什么不一样

Grails 和 Spring Security : license/usage agreement support

java - Hibernate 无法解析属性

java - hibernate 选择带有条件的顶部和底部n行

grails - Grails强制 Controller 下载文件

grails - Grails运行应用程序问题ERROR context.ContextLoader

java - 注释 : methods vs variables

java - hibernate 类型 yes_no 为 'J' 而不是 'Y'