Hibernate Grails应该在集成测试中忽略刷新模式吗?
我正在开发一个Grails(事务)服务,它构建一个复杂的域结构并将其持久化。该逻辑的工作原理是识别以前的结构,然后创建一个新结构,如果它通过了验证,则删除任何旧结构并保留新结构。Grails flush模式正在成为阻碍,因为验证逻辑会执行查询,而在自动模式下,查询会在域结构完成之前保留部分域结构 我在DataSource.groovy中设置了:Hibernate Grails应该在集成测试中忽略刷新模式吗?,hibernate,grails,integration-testing,Hibernate,Grails,Integration Testing,我正在开发一个Grails(事务)服务,它构建一个复杂的域结构并将其持久化。该逻辑的工作原理是识别以前的结构,然后创建一个新结构,如果它通过了验证,则删除任何旧结构并保留新结构。Grails flush模式正在成为阻碍,因为验证逻辑会执行查询,而在自动模式下,查询会在域结构完成之前保留部分域结构 我在DataSource.groovy中设置了: hibernate { flush.mode = "commit" } 因为我需要(我认为)关闭自动处理,它会刷新查询。如果没有这一点,我的新
hibernate {
flush.mode = "commit"
}
因为我需要(我认为)关闭自动处理,它会刷新查询。如果没有这一点,我的新结构的某些部分将在验证过程中以增量方式编写,这将导致Hibernate抛出可怕的完整性错误
在我的集成测试期间——尽管在DataSource.groovy中进行了设置——刷新模式仍然记录为AUTO。Grails不应该尊重我的设置有什么好的理由吗 默认级联行为是一对多关系的保存更新。 试试无
static mapping = {
foos cascade:'none'
}