隨筆-7  評論-24  文章-102  trackbacks-0

          1:主要說的是問題出在CGLib上面,修正一下就可以了,下載中也給出了patch,使用hibernate3.1把cglib從2.1.3更新到2.2.beta1。
          2:設(shè)置相關(guān)表的lazy="false"解決問題。

          總的來說是延遲加載,在寫測試類的時候沒問題,但是應(yīng)用到 web 頁面就會出錯。或者升級下 Hibernate 版本能修正這個錯誤。



          相關(guān): 淺談hibernate lazy fetch

          1、fetch 的優(yōu)先級高于 lazy,一般情況下(另外一般情況下除外,下篇會講到)fetch的優(yōu)先級高于 lazy,若出現(xiàn)了 fetch,則忽略 lazy。

          2、在配置文件中多對一時,一定要明確聲明 lazy=false 或 true,在多對一時,默認(rèn)情況下,lazy 即不是 true 也不是 false。你若不明確指出,它執(zhí)行的時候是按照 lazy=true 這種方式執(zhí)行的,但是你若明確寫上 lazy=true,指報出錯誤,一般情況下明確寫上 lazy=false。

          3、你的代碼若像 Student student = (Student)session.get(Student.class, 1),hibernate 會正確按照配置文件的策略來執(zhí)行,有 fetch 則執(zhí)行fetch,有 lazy 則執(zhí)行 lazy;但你的代碼若像 Query query = session.createQuery("from Student"),它會忽略配置文件中的 fetch,它不會執(zhí)行  fetch=join,lazy 會被正確執(zhí)行,Student 的屬性(這里假定是Team,它是對象)的配置文件中的 fetch 會被正確執(zhí)行。

          4、Query query = session.createQuery("from Student s left outer join s.team"),會忽略 Student 和 Team 類的配置文件的 fetch,但它們類中的 lazy 會被正確執(zhí)行。

          posted on 2009-04-18 00:17 黃小二 閱讀(366) 評論(0)  編輯  收藏 所屬分類: S/S2SH
          主站蜘蛛池模板: 惠安县| 女性| 花垣县| 辽阳县| 达日县| 雷波县| 肥东县| 东乌珠穆沁旗| 贵定县| 苍南县| 北辰区| 东方市| 鸡泽县| 神农架林区| 乌拉特前旗| 安福县| 南丹县| 腾冲县| 囊谦县| 花莲县| 长春市| 湾仔区| 油尖旺区| 昭苏县| 甘泉县| 南江县| 乳山市| 梅河口市| 望奎县| 若羌县| 登封市| 时尚| 隆昌县| 梅河口市| 阳西县| 彰武县| 贵溪市| 江安县| 曲松县| 高阳县| 塔河县|