Junky's IT Notebook

          統計

          留言簿(8)

          積分與排名

          WebSphere Studio

          閱讀排行榜

          評論排行榜

          使用hibernate經常碰到的一些異常介紹

          在使用hibernate過程中經常碰到一些異常,有些很常見,經過個人經驗和網上的搜集,也總結一下:

          一.CGLIB異常

          org.springframework.orm.hibernate.HibernateSystemException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.anyi.fa.model.FaCard.setCardND; nested exception is net.sf.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.anyi.fa.model.FaCard.setCardND
          net.sf.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.anyi.fa.model.FaCard.setCardND
          ?at net.sf.hibernate.persister.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:220)
          ?at net.sf.hibernate.impl.SessionImpl.initializeEntity(SessionImpl.java:2224)
          ?at net.sf.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:319)
          ?at net.sf.hibernate.loader.Loader.doQuery(Loader.java:309)
          ?at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:138)
          ?at net.sf.hibernate.loader.Loader.loadEntity(Loader.java:941)
          ?at net.sf.hibernate.loader.Loader.loadEntity(Loader.java:961)
          ?at net.sf.hibernate.loader.EntityLoader.load(EntityLoader.java:59)
          ?at net.sf.hibernate.loader.EntityLoader.load(EntityLoader.java:51)
          ?at net.sf.hibernate.persister.EntityPersister.load(EntityPersister.java:413)
          ?at net.sf.hibernate.impl.SessionImpl.doLoad(SessionImpl.java:2131)

          ?此中異常比較常見,一般是因為null造成的。例如:一個int映射到數據庫中,但從數據庫讀取時是null值這樣就會出現此中異常。

          解決方式:如果允許為空的字段做一包裝(int-->Integer,long-->Long,double--->Double等),其實這在系統設計時就應該根據實際情況考慮到的。

          二 。延遲加載問題

          net.sf.hibernate.LazyInitializationException:

          ?Failed to lazily initialize a collection - no session or session was closed

          此類問題也是比較常見的,一般是由于采用了延遲加載機制(lazy=true),在session關閉之后又調用延遲加載的數據或方法造成的。

          解決方式:

          ?? 在session關閉之前讀取,或調用HIbernate.initalize()方法。

          三.BigDecimal屬性映射時要指定小數位數。

          四.其他就是一些級聯更新刪除,主外建約束錯誤,操作主,子表順序的問題了,一般比較容易解決. ?



          Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1108781

          posted on 2006-08-25 10:19 junky 閱讀(629) 評論(0)  編輯  收藏 所屬分類: hibernate

          主站蜘蛛池模板: 金堂县| 穆棱市| 藁城市| 舟曲县| 曲周县| 迁安市| 九龙县| 探索| 鸡西市| 天台县| 金堂县| 大同县| 偏关县| 芜湖市| 西林县| 嘉义县| 游戏| 修水县| 萨迦县| 新晃| 贞丰县| 忻城县| 丹江口市| 临沧市| 南岸区| 靖安县| 新建县| 彝良县| 石阡县| 朝阳县| 华宁县| 浏阳市| 台中市| 资源县| 即墨市| 博罗县| 中超| 九龙城区| 南昌县| 婺源县| 阳信县|