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

          主站蜘蛛池模板: 牙克石市| 民和| 綦江县| 精河县| 城口县| 新安县| 潜山县| 运城市| 宁远县| 盘锦市| 郯城县| 徐闻县| 永平县| 中宁县| 兰州市| 柯坪县| 太白县| 晋宁县| 尼玛县| 瓮安县| 株洲县| 镇平县| 太和县| 潞城市| 集安市| 岫岩| 聊城市| 南和县| 临沧市| 法库县| 龙州县| 望江县| 德昌县| 和静县| 泗洪县| 色达县| 长治市| 锡林浩特市| 淮安市| 绩溪县| 泸溪县|