我在我的服務層中使用了@Transactional
註釋。但是爲了解決因延遲加載視圖導致的錯誤,我必須使用Open Session in View Filter
。在此之後,如果不使用@Transaction本身,會話將被打開並且事務開始。那麼這是否意味着@Transactions不是必需的?如何處理交易和回滾,然後在服務層?在視圖中打開會話與@Transactional
1
A
回答
3
The javadoc解釋它:
這個過濾器使得通過當前線程,將由事務管理器被自動檢測到可用的Hibernate的會話。它適用於通過HibernateTransactionManager或JtaTransactionManager進行的服務層事務以及非事務性執行(如果已正確配置)。
注意:此過濾器在默認情況下不會刷新休眠會話,並將刷新模式設置爲FlushMode.NEVER。它假定與關注刷新的服務層事務組合使用:活動事務管理器將在讀寫事務期間臨時將刷新模式更改爲FlushMode.AUTO,並在最後將刷新模式重置爲FlushMode.NEVER的每筆交易。如果您打算在沒有事務的情況下使用此過濾器,請考慮更改默認的刷新模式(通過「flushMode」屬性)。
相關問題
- 1. PersistenceManager和在視圖中打開會話
- 2. 休眠在視圖中打開會話
- 3. 打開會話視圖中使用EJB
- 4. @Transactional是否打開會話並綁定它?
- 5. NHibernate + ASP.NET +在視圖中打開會話+ L2Cache
- 6. JBoss Seam:如何在視圖中打開jpa/hibernate會話
- 7. 休眠'在視圖中打開會話'和異步任務
- 8. 視圖中的開放會話如何與jms連接/會話一起使用?
- 9. Windows會話與Google Gsuite用戶打開?
- 10. IE window.open打開與第一會話ID
- 11. 在使用Grails時,我應該關心在視圖中打開會話嗎?
- 12. 在嵌入式視圖中打開空白的對話框中打開文檔
- 13. 無法在Localytics中打開會話
- 14. 在watson會話中打開URL
- 15. JSF2:在EJB中打開會話?
- 16. 如何在Spyder 3中打開會話?
- 17. Android的web視圖打開會話相關
- 18. 打開會話視圖(OSIV)和Hibernate的Session沖洗
- 19. 從視圖位置打開對話框
- 20. 休眠在視圖中打開會話:每個請求的事務?
- 21. 在當前打開的會話中打開Selenium WebDriver
- 22. FB Android:Session:試圖打開已經打開的會話
- 23. 打開視圖
- 24. 打開ID爲的會話
- 25. 在jQuery對話框中打開一個MVC4視圖
- 26. 如何在NHibernate中實現開放會話視圖模式?
- 27. @Transactional裏面的無狀態會話
- 28. 在symfony2視圖中設置會話值
- 29. 在列表視圖中使用會話
- 30. 如何在會話關閉後重新打開休眠會話?
聽不懂。這是否意味着我不應該在服務層使用@Transactional。你能否以更好的方式解釋,或者可能是一些鏈接 – 2013-05-12 04:20:57
不。這意味着您應該照常編寫服務層,像往常一樣使用@Transactional。不同之處在於,即使事務已被提交,會話也將保持打開狀態。 – 2013-05-12 07:03:51