理論不懂就實踐,實踐不會就學理論!
posted on 2006-02-24 20:05 BlueDavy 閱讀(1710) 評論(6) 編輯 收藏 所屬分類: Java
^_^,因為Session本身一級緩存,由于OSIV取的同一個session,所以是同一個對象。save(test)后,test已經從pojo轉變為po,任何po的改動都會同步到數據庫,但是代碼中僅僅是testChild.setParent(test),而沒有test.addChild(testChild),所以僅僅是testChild發生了變化,test沒有任何改動,session中仍然保存的是以前的test。重新開一個session會讀取會得到帶有child的test,或者用get()方法。 回復 更多評論
看一下它,對你有幫助,http://m.tkk7.com/asktalk/archive/2006/01/18/28548.html 回復 更多評論
恩,多謝asktalk,^_^ 回復 更多評論
在 dao.getById(..) 前叫: session.clear() 或 session.evict(test). 可清理一級緩存, 迫 hibernate 重新讀取. 回復 更多評論
恩,已經這么做了,多謝,^_^ 回復 更多評論
可以用session.refresh()進行強行讀取就OK了。 我么項目的Category也是自影射,修改完以后child就沒有了。只要refresh一下就OK了。 回復 更多評論