我有一个issueInstance,它有很多issueItemInstances,
和一个issueItemInstance有一个receiptItemInstance(多对一),
当issueInstance.save(flush:true,failOnError:true),
时我想通过循环使用issueItemInstances重新计算receiptItemInstance.quantity以获取所有其他已保存的issueItemInstance.quantity(多对一),
以及何时!receiptItemInstance.validate()(例如数量太大),
我想回滚,
但它似乎不能与1.static transactional =' mongo'和2. Issue.withTransaction
抛出异常时,不会删除issueInstance和issueItemInstances。
如果仅使用save(),则不会重新计算正确,因为尚未保存issueItemInstance。
是否有任何提示或任何方式,但手动?
我使用MongoDB GORM':mongodb:3.0.1'
非常感谢,
标记
答案 0 :(得分:0)
使用:
Issue.withTransaction { status ->
Issue issueInstance // Get issue instance
def receiptItemInstance // get receipt item instance
if (!receiptItemInstance.validate()) {
status.setRollbackOnly()
return // Exit the transaction block
}
// Conitune with your code
}