如果我使用Hibernate會話保存一個實體,然後探測從下一行的當前會話中獲取此實體(即,沒有將更改寫入數據庫),會話將返回一個東西?我認爲它應該,因爲它也意識到它已經做了什麼改變。試圖瞭解休眠會話
Q
試圖瞭解休眠會話
0
A
回答
0
是的,已保存的實體和正在加載/查詢的實體的視圖應該一致。在執行查詢之前,有時查詢會導致對數據庫的所有未完成更改進行刷新,以產生此一致性(假定會話設置爲默認自動刷新模式)。
此外,在這種情況下,會話應返回與您保存的完全相同的對象,而不是引用數據庫中同一行的副本。
0
它應該,但是在實現相等和散列碼時你必須小心。會話只是一個由對象ID鍵入的實體的大散列圖。所以如果你試圖通過ID檢索對象,你會得到相同的對象。
相關問題
- 1. [N]休眠會話
- 2. 無法理解休眠中的會話
- 3. 休眠在視圖中打開會話
- 4. 休眠會話錯誤
- 5. SEAM /休眠:一個會話
- 6. 休眠會話關閉
- 7. 休眠會話處理
- 8. EntityManager和休眠會話
- 9. 休眠會話線程
- 10. Vaadin休眠會話錯誤
- 11. JMS與休眠會話
- 12. 休眠:從合併會話
- 13. 管理休眠會話
- 14. 休眠會話範圍
- 15. 瞭解休眠關係
- 16. 瞭解休眠內部
- 17. 瞭解休眠取指
- 18. 試圖在休眠
- 19. 瞭解會話
- 20. 休眠會話和線程安全
- 21. 休眠配置 - 會話工廠掃描?
- 22. 休眠會話到列表轉換
- 23. 休眠沒有會話(不依賴)
- 24. 正確使用會話(休眠)
- 25. 如何斷開休眠會話
- 26. 線程中的休眠會話
- 27. 休眠會話的彈性配置
- 28. 休眠會話工廠始終爲空
- 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