我有一個服務方法調用DAO,然後從數據庫返回一個對象。該方法從系統的許多部分調用。但是,一種特定的方法是獲取類型爲ObjectClass _ $$ _ javassist_somenumber的返回類型。這是扔掉的東西。我調用與其他地方完全相同的服務方法,那麼爲什麼hibernate會返回代理而不是自然對象呢?爲什麼hibernate返回代理對象?
我知道有辦法暴露「代理」對象,但我不覺得我應該這樣做。
查詢僅僅是
hibernateTemplate.find("from User u where u.username = ?", username)
我使用Hibernate 3.3 BTW。
那麼對象是急切加載,因爲我得到一個代理對象這個特別的電話,我想你不能保證該對象會是。有趣的是,當我從方法A調用DAO.getUser(String username)時,我得到User對象,但從方法B調用完全相同的莊園中的方法,我得到代理。 – predhme 2010-04-07 19:10:34
通常,問題是以這種方式返回的代理*未被正確初始化;否則,如果它被正確填充,事情應該已經正常進行。任何人都知道爲什麼find方法可能會返回未初始化的代理? – 2011-07-22 03:15:57