我正在开发Grails(事务性)服务,该服务构建一个复杂的域结构并持久化。逻辑通过识别先前的结构,然后创建新结构然后 - 如果它通过验证 - 移除任何旧结构并持久保存新结构来工作。 Grails刷新模式正在阻碍,因为验证逻辑会执行查询,这些查询在AUTO模式下会在域结构完成之前保留部分结构。
我已经设置了DataSource.groovy:
hibernate {
flush.mode = "commit"
}
因为我需要(我认为)关闭在查询时刷新的AUTO处理。如果没有这个,我的新结构的一部分将在验证过程中逐步写入,这会导致Hibernate抛出可怕的完整性错误。
在我的集成测试期间 - 尽管DataSource.groovy中设置了 - 刷新模式仍然记录为AUTO。 Grails不应该尊重我的环境有充分的理由吗?
答案 0 :(得分:0)
默认级联行为是针对一对多关系的save-update。 尝试cascade none
static mapping = {
foos cascade:'none'
}