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

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

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

    【Hibernate總結(jié)系列】常見異常總結(jié)(不斷補(bǔ)充)

     

           本文總結(jié)Hibernate中常見的異常。

    1. net.sf.hibernate.MappingException

           當(dāng)出現(xiàn)net.sf.hibernate.MappingException: Error reading resource:…異常時(shí)一般是因?yàn)橛成湮募霈F(xiàn)錯(cuò)誤。

           當(dāng)出現(xiàn)net.sf.hibernate.MappingException: Resource: … not found是因?yàn)?/span>XML配置文件沒找到所致,有可能是放置目錄不正確,或者沒將其加入hibernate.cfg.xml中。

    2. net.sf.hibernate.PropertyNotFoundException

           當(dāng)出現(xiàn)net.sf.hibernate.PropertyNotFoundException: Could not find a setter for property name in class …時(shí),原因一般是因?yàn)?/span>XML映射文件中的屬性與對(duì)應(yīng)的Java類中的屬性的gettersetter方法不一致。

    3. org.hibernate.id.IdentifierGenerationException

           當(dāng)出現(xiàn)org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save():異常時(shí),一般是因?yàn)?/span><id>元素配置不正確,<id>元素缺少其子元素<generator></generator>的配置引起。

           解決方案:<id>元素映射了相應(yīng)數(shù)據(jù)庫表的主鍵字段,對(duì)其子元素<generator class="">,其中class的取值可以為incrementidentitysequencehilonative……等,更多的可參考hibernate參考文檔,一般取其值為native 。具體可參考2.2.2.1小節(jié)。

    4. a different object with the same identifier value was already associated with the session

           當(dāng)出現(xiàn)a different object with the same identifier value was already associated with the session時(shí),一般是因?yàn)樵?/span>hibernate中同一個(gè)session里面有了兩個(gè)相同標(biāo)識(shí)但是是不同實(shí)體。

           有如下幾種解決方案:

    1)使用session.clean(),如果在clean操作后面又進(jìn)行了saveOrUpdate(object)等改變數(shù)據(jù)狀態(tài)的操作,有可能會(huì)報(bào)出"Found two representations of same collection"異常。

    2)使用session.refresh(object),當(dāng)object不是數(shù)據(jù)庫中已有數(shù)據(jù)的對(duì)象的時(shí)候,不能使用session.refresh(object)因?yàn)樵摲椒ㄊ菑?/span>hibernatesession中去重新取object,如果session中沒有這個(gè)對(duì)象,則會(huì)報(bào)錯(cuò)所以當(dāng)你使用saveOrUpdate(object)之前還需要判斷一下。

    3session.merge(object)Hibernate里面自帶的方法,推薦使用。

    5. SQL Grammer Exception,Could not execute JDBC batch update

           當(dāng)出現(xiàn)SQL Grammer Exception,Could not execute JDBC batch update異常時(shí),一般是由如下問題引起:

    1SQL語句中存在語法錯(cuò)誤或是傳入的數(shù)據(jù)有誤;

    2)數(shù)據(jù)庫的配置不合法,或者說是配置有誤。較容易出現(xiàn)的有數(shù)據(jù)表的映射文件(,hbm.xml文件)配置有誤;Hibernate.cfg.xml文件配置有誤;

    3 當(dāng)前的數(shù)據(jù)庫用戶權(quán)限不足,不能操作數(shù)據(jù)庫。以是以Oracle 數(shù)據(jù)庫為例,這種情況下在錯(cuò)誤提示中會(huì)顯示java.sql.BatchUpdateException: ORA-01031: insufficient privileges這樣的信息。

           針對(duì)上面的各種原因,開發(fā)人員可以找出對(duì)應(yīng)的解決方案。

    http://www.tkk7.com/amigoxie/category/19976.html

    posted on 2008-11-15 21:52 smallfa 閱讀(274) 評(píng)論(0)  編輯  收藏 所屬分類: hibernate/ibatis

    <2008年11月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    smallfa
    博客園
    C++博客
    博客生活
    Blogjava
    足球博客
    微博
    Redsaga

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊(cè)

    Ajax

    Blogs

    DB

    java

    Open source

    ORM

    Tools/Help

    vedio Tech

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 在线播放免费播放av片| 国产乱辈通伦影片在线播放亚洲 | 亚洲AV无码专区在线播放中文| 男人j进入女人j内部免费网站| 2020国产精品亚洲综合网| 国产91久久久久久久免费| 日韩电影免费在线观看| 亚洲精品无码专区在线| 亚洲色婷婷一区二区三区| 91在线视频免费看| a级黄色毛片免费播放视频| 2017亚洲男人天堂一| 亚洲中文字幕无码久久2017| 毛片免费在线播放| 国产一级片免费看| 国产99久久亚洲综合精品| 亚洲综合小说久久另类区| 亚洲不卡无码av中文字幕| 99久久99久久精品免费看蜜桃| 又大又硬又粗又黄的视频免费看| 亚洲黄色免费电影| 久久夜色精品国产亚洲av| 毛片免费全部免费观看| 999久久久免费精品播放| 黄色网址免费在线| 亚洲日日做天天做日日谢| 亚洲av无码精品网站| 亚洲精品视频免费观看| 成人无码区免费视频观看| 毛片无码免费无码播放| eeuss草民免费| 日韩精品亚洲专区在线影视| 亚洲av无码电影网| 日产亚洲一区二区三区| 亚洲小说区图片区另类春色| 国产免费小视频在线观看| 最近中文字幕免费mv视频7| 精品国产污污免费网站aⅴ| 全免费a级毛片免费看| 特级做A爰片毛片免费看无码 | 国产免费一区二区视频|