我可以使用geCurrentSession()而不是使用HibernateCallback來獲取會話嗎?如果兩個會話都由Spring管理,爲什麼我需要回調?有沒有與此相關的任何性能優勢?HibernateCallback和getCurrentSession的區別
0
A
回答
1
在一個配置良好的Spring應用程序中,兩者在一種情況下是等價的:當沒有當前的事務上下文時。在這種情況下,getCurrentSession()將不起作用,而使用HibernateCallback將爲您打開會話和Hibernate事務並在最後關閉它們。
注意the documentation of HibernateTemplate提到的getCurrentSession()應優選的:
注意:作爲休眠3.0.1的,事務的Hibernate訪問代碼可以 也可以以純的Hibernate風格編碼。因此,對於新開始的 項目,請考慮採用基於 SessionFactory.getCurrentSession()的代碼的標準Hibernate3風格編碼 數據訪問對象。
它還說:
注意的HibernateTemplate將執行自己的會話管理, 不參與自定義休眠CurrentSessionContext除非 你明確地切換「allowCreate」爲「假」。
混合兩種做法是不是一個好主意。
我的首選是避免HibernateTemplate,直接使用Hibernate Session API,並使用Spring管理的聲明式事務。
相關問題
- 1. HibernateCallback實施
- 2. 何時使用OpenSession()和GetCurrentSession()
- 3. getCurrentSession()vs openSession()
- 4. +和CONCAT的區別?
- 5. 區別「」和
- 6. 區別://和http:\\
- 7. 休眠的openSession()VS的getCurrentSession()
- 8. 的getCurrentSession創建會話
- 9. 之間的〜/和的區別../
- 10. JQuery.Post()的目的和區別
- 11. 區別:android:background和android:src?
- 12. 區別使用[和[
- 13. 區別Await.ready和Await.result
- 14. ASCII和Unicode區別
- 15. 區別:Riak.mapValuesJson()和JSON.parse()
- 16. 區別:ID/*和@ + ID/*
- 17. LXML xpath.//和//區別
- 18. 區別GetDesktopWindow()和HWND_DESKTOP
- 19. 區別webcontent和webapp
- 20. 區別! !和= JavaScript中
- 21. 類區域和堆之間的區別
- 22. Cassandra中節點和分區的區別
- 23. Vuforia文本識別和OCR的區別?
- 24. SPFile和PublishingPage類別之間的區別
- 25. 子類和類別之間的區別?
- 26. CGLayer,CALayer和CGContext的區別
- 27. BasicDatasource和PoolingDatasource的區別
- 28. mysqli_query和mysqli_real_query的區別
- 29. C#和LabWindows/CVI的區別
- 30. DECLARE_DYNAMIC和DECLARE_DYNCREATE的區別?
@Nizet:謝謝你。我想我會用Hibernate3風格。 –