GGTS 3.4 Grails 2.3.3 - 當生成控制器時,這個版本包含了許多@Transactional行,我從未見過,但我不完全明白他們在做什麼。Grails - 回滾管理數據庫事務
在控制器的頂部有一行:
@Transactional(readOnly = true)
然後之前一定分貝變化的行動:「保存」,「更新」和「刪除」有行:
@Transactional
我認爲這會將每次dB改變操作的readOnly切換爲false。它是否會打開一個可以提交或回滾的新事務?有沒有簡單的方法來強制回滾?
儘管執行'new'db命令來創建特定域類的新實例,但「創建」操作在它之前沒有@Transactional行。如果保存事務沒有完成或者是否回滾,那麼這個新創建但未保存的實例會發生什麼?通過未完成,我正在考慮在'創建'視圖中引入'取消'按鈕,以便用戶可以根據需要從創建中退出 - 用戶也可以在不調用保存的情況下輕鬆導出創建視圖。
-Mike
我在此階段使用H2休眠 - 我注意到,當我嘗試在取消或退出某個視圖後列出視圖中的所有實例時,我會看到一些臨時實例顯示爲「未保存」創建。當談到做回滾時,我已經閱讀了關於在服務中使用setRollbackOnly()的問題。這是做回滾的唯一方法。另外,如果我在保存的情況下執行此操作,它會清理未保存的實例嗎? – mikek