回滾都是在這裏完成的預期:Grails的(2.3)@事務不會回退
@Transactional(propagation = Propagation.REQUIRES_NEW)
def test1() {
def dummy = new Dummy(name: "test1")
dummy.save()
throw new RuntimeException("test1!")
}
但在這裏沒有 - 這可能是錯誤的 - try/catch語句應該不會影響到行爲:
@Transactional(propagation = Propagation.REQUIRES_NEW)
def test2() {
def dummy = new Dummy(name: "test2")
dummy.save()
try {
throw new RuntimeException("test2!")
} catch (all) {
println all.message
}
}
我一直盼望代理反正承認例外。見測試2瀏覽:http://devhobbs.blogspot.de/2015/04/grailsgorm-transactions.html(測試2的結果:沒有書面記錄異常回滾。) –
只是要清楚,你是在一個服務? '@Transactional(傳播= Propagation.REQUIRES_NEW) DEF TEST1(){'是在服務?而不是控制器,因爲如果你看看你提供的例子'@Transactionalclass BookService {' – Vahid
我更新了我的回答,因爲我的評論回來了關於你的例子等會太長檢查更新的答案 – Vahid