如果我使用Hibernate會話保存一個實體,然後探測從下一行的當前會話中獲取此實體(即,沒有將更改寫入數據庫),會話將返回一個東西?我認爲它應該,因爲它也意識到它已經做了什麼改變。試圖瞭解休眠會話
Q
試圖瞭解休眠會話
0
A
回答
0
是的,已保存的實體和正在加載/查詢的實體的視圖應該一致。在執行查詢之前,有時查詢會導致對數據庫的所有未完成更改進行刷新,以產生此一致性(假定會話設置爲默認自動刷新模式)。
此外,在這種情況下,會話應返回與您保存的完全相同的對象,而不是引用數據庫中同一行的副本。
0
它應該,但是在實現相等和散列碼時你必須小心。會話只是一個由對象ID鍵入的實體的大散列圖。所以如果你試圖通過ID檢索對象,你會得到相同的對象。
相關問題
- 1. 休眠會話
- 2. [N]休眠會話
- 3. 無法理解休眠中的會話
- 4. 休眠在視圖中打開會話
- 5. 休眠會話工廠Android
- 6. JMS與休眠會話
- 7. 休眠會話範圍
- 8. 休眠會話關閉
- 9. SEAM /休眠:一個會話
- 10. 休眠會話線程
- 11. 休眠4會話log4j
- 12. 管理休眠會話
- 13. 休眠會話處理
- 14. 休眠會話錯誤
- 15. EntityManager和休眠會話
- 16. Vaadin休眠會話錯誤
- 17. 休眠會話和標準
- 18. 休眠:從合併會話
- 19. 休眠@交易會話
- 20. 批量Grails休眠會話
- 21. 瞭解休眠關係
- 22. 瞭解休眠事務
- 23. 瞭解休眠內部
- 24. 瞭解休眠取指
- 25. 試圖在休眠
- 26. 休眠註解Java地圖
- 27. 瞭解會話
- 28. 春季休眠 - 共享會話DAOs
- 29. 如何斷開休眠會話
- 30. 春季休眠會話問題
,但它從AbstractAnnotationAwareTransactionalTests類延伸,並標記爲事務 – preslavrachev 2012-04-01 18:51:04
你是如何「探測」爲實體JUnit測試返回null?使用查詢?會話之前自動刷新會話?在查詢幫助之前是否放置了session.flush()調用? – araqnid 2012-04-01 18:59:22
我只需保存,沖洗,然後再嘗試從下一行的會議上抓住它,而且它返回null,但我看到了INSERT SQL被髮送到數據庫。難道測試被標記爲@Transactional? – preslavrachev 2012-04-01 19:09:54