【问题标题】:Is Grails supposed to ignore the flush mode in integration tests?Grails 是否应该在集成测试中忽略刷新模式?
【发布时间】:2011-06-01 14:22:29
【问题描述】:

我正在开发一个 Grails(事务性)服务,该服务构建一个复杂的域结构并将其持久化。该逻辑的工作原理是识别先前的结构,然后创建一个新结构,然后 - 如果它通过验证 - 删除任何旧结构并保留新结构。 Grails 刷新模式正在成为阻碍,因为验证逻辑会执行查询,在 AUTO 模式下,它会在完成之前保留域结构的一部分。

我已经在 DataSource.groovy 中设置了:

hibernate {
    flush.mode = "commit"
}

因为我需要(我认为)关闭查询时刷新的自动处理。如果没有这个,我的新结构的一部分在验证过程中会被增量写入,这会导致 Hibernate 抛出可怕的完整性错误。

在我的集成测试期间——尽管在 DataSource.groovy 中进行了设置——刷新模式仍被记录为 AUTO。 Grails 是否有充分的理由不尊重我的设置?

【问题讨论】:

    标签: hibernate grails integration-testing


    【解决方案1】:

    默认的级联行为是一对多关系的保存更新。 尝试级联无

    static mapping = {
        foos cascade:'none'
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-13
      相关资源
      最近更新 更多