Java學(xué)習(xí)

          java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已經(jīng)搬家了,新的地址是 http://www.javaly.cn 如果有對(duì)文章有任何疑問(wèn)或者有任何不懂的地方,歡迎到www.javaly.cn (Java樂(lè)園)指出,我會(huì)盡力幫助解決。一起進(jìn)步

           

          解決a different object with the same identifier value was already associated with the session錯(cuò)誤

          這個(gè)錯(cuò)誤我一共遇到過(guò)兩次,一直沒(méi)有找到很好的解決方案,這個(gè)錯(cuò)誤產(chǎn)生原因相信 大家都知道,因?yàn)樵趆ibernate中同一個(gè)session里面有了兩個(gè)相同標(biāo)識(shí)但是是不同實(shí)體,當(dāng)這時(shí)運(yùn)行saveOrUpdate(object) 操作的時(shí)候就會(huì)報(bào)這個(gè)錯(cuò)誤。呵呵,也許你會(huì)說(shuō),你這么說(shuō)跟沒(méi)說(shuō)沒(méi)什么區(qū)別,我承認(rèn),呵呵,我不知道具體為什么會(huì)產(chǎn)生這個(gè)錯(cuò)誤,要不然也不會(huì)很久都沒(méi)有解 決,現(xiàn)在,給出一個(gè)臨時(shí)的解決方案,給向我一樣,沒(méi)有辦法找到根源的人一個(gè)能夠繼續(xù)執(zhí)行下去的方法(當(dāng)然是對(duì)的,只是不是從產(chǎn)生原因入手)

          其實(shí)要解決這個(gè)問(wèn)題很簡(jiǎn)單,只需要進(jìn)行session.clean()操作就可以解決了,但是你在clean操作后面又進(jìn)行了saveOrUpdate(object)操作,有可能會(huì)報(bào)出"Found two representations of same collection",我找了很多資料,沒(méi)有什么很好的解釋,其中這篇文章幫助最大http://opensource.atlassian.com/projects/hibernate/browse/HHH-509

          最后通過(guò)session.refresh(object)方法就可以解決了,注意,當(dāng)object不是數(shù)據(jù)庫(kù)中已有 數(shù)據(jù)的對(duì)象的時(shí)候,不能使用session.refresh(object)因?yàn)閞efresh是從hibernate的session中去重新取 object,如果session中沒(méi)有這個(gè)對(duì)象,則會(huì)報(bào)錯(cuò)所以當(dāng)你使用saveOrUpdate(object)之前還需要判斷一下

          當(dāng)然這個(gè)問(wèn)題最容易解決的辦法還是使用Hibernate里面自帶的merge()方法。不過(guò)我始終覺(jué)得碰到問(wèn)題就用這種軟件自帶的非常用方法(和saveOrUpdate(),save(),update()相比)感覺(jué)十分不爽。

          后來(lái)我還發(fā)現(xiàn)這種錯(cuò)誤經(jīng)常出現(xiàn)在一對(duì)多映射和多對(duì)多映射,請(qǐng)大家在使用一對(duì)多和多對(duì)多映射的時(shí)候要小心一些

          posted on 2008-11-28 16:10 找個(gè)美女做老婆 閱讀(357) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          本blog已經(jīng)搬到新家了, 新家:www.javaly.cn
           http://www.javaly.cn

          常用鏈接

          留言簿(6)

          隨筆檔案

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 兰考县| 兰坪| 万宁市| 南乐县| 监利县| 天长市| 阿荣旗| 临夏市| 林州市| 绥中县| 清远市| 大英县| 汾阳市| 永安市| 张家界市| 平凉市| 肇源县| 阿尔山市| 名山县| 凯里市| 安阳县| 微山县| 太仓市| 庆云县| 峡江县| 长乐市| 化德县| 横山县| 龙门县| 上高县| 嘉峪关市| 龙州县| 盖州市| 威信县| 乌拉特前旗| 长汀县| 来宾市| 山阳县| 台南市| 宁德市| 和平县|