新聞中心
今天在項(xiàng)目里遇到這樣一個(gè)問(wèn)題,使用Hibernate進(jìn)行修改操作saveOrUpdate()或者是update()時(shí)出了這樣一個(gè)錯(cuò)誤,即Hibernate更新出錯(cuò)。根據(jù)異常信息的字面意思,大致意思是說(shuō), 在一個(gè)session對(duì)象中同時(shí)存在著重復(fù)的相同標(biāo)識(shí)的卻是不同的對(duì)象。

順河網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),順河網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為順河上1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的順河做網(wǎng)站的公司定做!
我遇到的情況是這樣的,客戶端進(jìn)行插入操作,這個(gè)時(shí)候所插入的這個(gè)對(duì)象緩存在session中,而用戶在插入后又對(duì)同一個(gè)對(duì)象,進(jìn)行修改操作,那么這個(gè)時(shí)候,同樣標(biāo)識(shí)的一個(gè)對(duì)象又發(fā)送到服務(wù)端,那么一個(gè)session中就存在了兩個(gè)標(biāo)識(shí)相同的對(duì)象,而對(duì)象中的內(nèi)容卻不一樣,所以Hibernate會(huì)報(bào)這個(gè)錯(cuò),同樣是Hibernate更新出錯(cuò)。那么針對(duì)于這種Hibernate更新出錯(cuò),該如何解決呢?
應(yīng)該有許多種方法,這里我用了session.clear()在每次更新操作之前,先把session清空掉。代碼如下:
- public int saveOrUpdate(String classPath, Object obj) {
- try {
- getSession().saveOrUpdate(classPath, obj);
- //每次操作之后清空session
- getSession().flush();
- getSession().clear();
- } catch (RuntimeException re) {
- re.printStackTrace();
- }
- }
這只是對(duì)我所遇到的Hibernate更新出錯(cuò)問(wèn)題的解決辦法之一,如果哪里說(shuō)的不正確希望大家批評(píng)指正,互相學(xué)習(xí)。
本文題目:Hibernate更新出錯(cuò)的解決
網(wǎng)頁(yè)URL:http://m.fisionsoft.com.cn/article/dpcsosp.html


咨詢
建站咨詢
