<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.tkk7.com/sxyx2008/謝謝合作!!!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
     

    Hibernate org.hibernate.PropertyAccessException: exception setting property value with CGLIB異常分析及處理

    異常信息:

    Exception in thread "main" org.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.dl.bean.Employee.setDepartment

        at org.hibernate.tuple.PojoEntityTuplizer.setPropertyValuesWithOptimizer(PojoEntityTuplizer.java:215)

        at org.hibernate.tuple.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:185)

        at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3232)

        at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:129)

        at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:842)

        at org.hibernate.loader.Loader.doQuery(Loader.java:717)

        at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)

        at org.hibernate.loader.Loader.doList(Loader.java:2145)

        at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)

        at org.hibernate.loader.Loader.list(Loader.java:2024)

        at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)

        at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308)

        at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153)

        at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106)

        at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)

        at com.dl.test.EmployeeTest.main(EmployeeTest.java:26)

    Caused by: net.sf.cglib.beans.BulkBeanException: com.dl.bean.Employee cannot be cast to com.dl.bean.Department

        at com.dl.bean.Employee$$BulkBeanByCGLIB$$a415f505.setPropertyValues(<generated>)

        at org.hibernate.tuple.PojoEntityTuplizer.setPropertyValuesWithOptimizer(PojoEntityTuplizer.java:212)

        ... 15 more

    Caused by: java.lang.ClassCastException: com.dl.bean.Employee cannot be cast to com.dl.bean.Department

        ... 17 more

    遇此異常很老火,當然第一件事就是在googlebaidu一把看能解決吧!

    googlebaidu結果如下:

    查詢結果中包含null的值,對于一些數字或boolean包含null,定義該項時必須使用wrapper類型,而不能是primitive類型,例如使用Integer而不能是int,Boolean而不能是boolean否則會拋出exception

    結論是:對于屬性在set/get,屬性值為null而出現該異常

    我對此種說法不敢茍同,既然google上有這種說法相比就有它存在的道理。

    從上述語句中我們得出結論:在寫pojo類時最好選用包裝類而不使用java中的基本數據類型,以免產生一些莫名其妙的錯誤(建議使用5.0以上的jdk版本)大家一直認為java是面向對象的語言,這句話在jdk1.4以前是有分歧的,大家都知道java8個基本數據類型不是對象,所以這么說還不夠嚴謹,直到jdk5.0的誕生,這句話才勉強成立。我想這也是sun公為什么極力推薦使用包裝類的緣故。

    看來還得自己分析這個異常,那么首先從映射文件及pojo類來下手

    Java代碼:

    publicclass Employee {

        private Integer id;

        private String empname;

        private Integer empage;

        private String context;

        private Integer deptid;

        private Department department=new Department();

         //省略set()get()方法

    }

    <hibernate-mapping package="com.dl.bean">

        <class name="Employee" table="employee">

             <id name="id" >

                 <generator class="native"/>

             </id>

             <property name="empname"/>

             <property name="empage"/>

             <property name="context" />

             <property name="deptid" insert="false" update="false"/>

             <many-to-one name="department" column="deptid" cascade="all" class="Employee" /> //此處為錯誤的根源,這個錯誤很隱蔽,不仔細檢查很難發現

        </class>

        </hibernate-mapping>

    不知道至此大家發現錯誤了沒,經過本人仔細檢查以及分析以上pojo類及映射文件,發現在<many-to-one>標簽中class屬性配置出錯了,正確的配置應為:

    <many-to-one name="department" column="deptid" cascade="all" class="Department" />,到此問題徹底解決了,沒什么技術含量,只是記下來,防止更多人走冤枉路

    posted on 2009-11-25 17:56 雪山飛鵠 閱讀(6406) 評論(4)  編輯  收藏 所屬分類: Hibernate

    Feedback

    # re: Hibernate org.hibernate.PropertyAccessException: exception setting property value with CGLIB異常分析及處理 2009-11-25 18:55 天堂露珠
    遇到過class屬性配置錯的,但提示的錯誤不是這樣的。  回復  更多評論
      

    # re: Hibernate org.hibernate.PropertyAccessException: exception setting property value with CGLIB異常分析及處理 2009-11-26 09:12 雪山飛鵠
    @天堂露珠
    還記得你的錯誤嗎?將你的錯誤發上來,大家一塊研究研究~  回復  更多評論
      

    # re: Hibernate org.hibernate.PropertyAccessException: exception setting property value with CGLIB異常分析及處理 2009-12-12 17:20 興華
    祖國上下就需要你這樣的精神。  回復  更多評論
      

    # re: Hibernate org.hibernate.PropertyAccessException: exception setting property value with CGLIB異常分析及處理 2011-12-07 15:40 lp
    感謝LZ,問題解決的很好!  回復  更多評論
      

    主站蜘蛛池模板: 免费高清在线影片一区| 99re免费在线视频| 美女黄网站人色视频免费国产| 亚洲黄色在线视频| 免费视频爱爱太爽了| 亚洲国产情侣一区二区三区| 51在线视频免费观看视频| 亚洲小说图片视频| 91视频国产免费| 亚洲av日韩综合一区二区三区| 免费国产不卡午夜福在线| 一级视频在线免费观看| 亚洲精品国产自在久久| 国产精品视频全国免费观看| 精品国产综合成人亚洲区| 香蕉成人免费看片视频app下载| 2022年亚洲午夜一区二区福利| 国产成人精品免费视频大全麻豆| 亚洲黄页网在线观看| 日本免费的一级v一片| 四虎影视久久久免费观看| 亚洲VA成无码人在线观看天堂| 69免费视频大片| 亚洲AV无码专区国产乱码不卡| 亚洲日韩中文字幕日韩在线| 一区二区三区观看免费中文视频在线播放 | 亚洲AV无码久久| 一二三四影视在线看片免费| 男性gay黄免费网站| 亚洲熟妇无码AV在线播放| 1000部免费啪啪十八未年禁止观看 | 亚洲综合色婷婷七月丁香| 四虎国产成人永久精品免费| 67194在线午夜亚洲| 中文字幕亚洲日本岛国片| h视频在线观看免费完整版| 男男黄GAY片免费网站WWW| 亚洲va久久久噜噜噜久久| 免费看片A级毛片免费看| 光棍天堂免费手机观看在线观看| 亚洲剧情在线观看|