Grails是否应该忽略集成测试中的刷新模式?

时间:2011-06-01 14:22:30

标签: hibernate grails integration-testing

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

我已经设置了DataSource.groovy:

hibernate {
    flush.mode = "commit"
}

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

在我的集成测试期间 - 尽管DataSource.groovy中设置了 - 刷新模式仍然记录为AUTO。 Grails不应该尊重我的环境有充分的理由吗?

1 个答案:

答案 0 :(得分:0)

默认级联行为是针对一对多关系的save-update。 尝试cascade none

static mapping = {
    foos cascade:'none'
}