這裏新來休眠。我使用的是Hibernate 3.5,我知道默認情況下應該使用延遲獲取。我已經通過我如何確定hibernate是否有'lazy'加載代理或真實對象?
<property name="show_sql">true</property>
啓用SQL日誌記錄我請求,其具有參考對象B保持數據的實際字節數組對象A。我將數據推送到對象B中,這樣除非真正需要數據,否則數據不會從數據庫中獲取,但是當我請求對象A時,堆會急劇跳轉,就好像無論如何它都獲取數據,並且我從休眠中獲取此輸出SQL日誌記錄:
Hibernate: select attachment0_.id as id11_0_, attachment0_.data as data11_0_ from attachment_data attachment0_ where attachment0_.id=?
我不清楚如何解釋這一點,特別是'as'語句。 'attachment0.data'似乎是對象B中的字節數組.Hibernate是說它是爲數組創建一個代理,還是說它實際上是從數據庫中提取數據?如果它只是創建一個代理,我會看到代理沒有選擇輸出?
因此,總而言之,我該如何確定我是否有代理或實體對象,以及如何解釋select語句的相關問題?
我已經潛入hibernate文檔,以及在網上搜索了很多,但大部分信息似乎是我失蹤的基本知識之上的一個步驟,所以任何幫助表示讚賞。
attachment_data的
org.hibernate.engine.PersistenceContext
,然後的Javadoc映射表對象A或對象B? – 2011-03-18 10:14:50