碰到的一個Hibernate的問題
在OSIV情況下編寫的一個測試類,其中的代碼是這樣的:

2

3

4

5

6














































因為是open session in view,所以session是在代碼執行完畢后關閉的;
在這種情況下執行resultTest.getChilds()返回的是null。
調試的時候dao.getById執行完畢后取回的resultTest和之前的test是同一個對象,hashcode都是一樣的..
于是便嘗試在dao.getById之前把session關閉,這個時候再執行發現resultTest.getChilds()就是正確的了..
總結,就是在同一個session內如果save了一個對象,再通過session.load的方式去取這個對象取出的將仍然是當前session中的對象,也就是說不會去數據庫中重新獲取...
怎么感覺這樣是不太對的,明明數據庫有改變,卻沒有去重新的加載...
但因為open session in view是這么做的,所以現在干脆測試的時候就使用另外一個dao了,唯一的不同就是這個dao會即時的關閉session,大家有沒有別的什么好建議,^_^
posted on 2006-02-24 20:05 BlueDavy 閱讀(1711) 評論(6) 編輯 收藏 所屬分類: Java