一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

java – Hibernate將對象保存到多個會話

 印度阿三17 2019-10-04

我試圖使用hibernate寫入多個數(shù)據(jù)庫.我在單個會話對象中封裝了寫入和讀取/寫入會話.但是,當(dāng)我去保存時,我收到很多錯誤,表明對象已經(jīng)與另一個會話相關(guān)聯(lián):“非法嘗試將集合與兩個打開的會話相關(guān)聯(lián)”

這是我的代碼:

public class MultiSessionObject implements Session {

       private Session writeOnlySession;
       private Session readWriteSession;

       @Override
       public void saveOrUpdate(Object arg0) throws HibernateException {
              readWriteSession.saveOrUpdate(arg0);
              writeOnlySession.saveOrUpdate(arg0);
       }
}

我試過驅(qū)逐物體并沖洗;但是,這會導(dǎo)致“Row被另一個事務(wù)更新或刪除”的問題……即使兩個會話都指向不同的數(shù)據(jù)庫.

public class MultiSessionObject implements Session {

       private Session writeOnlySession;
       private Session readWriteSession;

       @Override
       public void saveOrUpdate(Object arg0) throws HibernateException {
              readWriteSession.saveOrUpdate(arg0);
              readWriteSession.flush();
              readWriteSession.evict(arg0);

              writeOnlySession.saveOrUpdate(arg0);
              writeOnlySession.flush();
              writeOnlySession.evict(arg0);
       }
}

除了上述內(nèi)容之外,我還嘗試使用hibernate的復(fù)制功能.這也沒有成功,沒有錯誤.

有沒有人成功將對象保存到兩個具有相同模式的數(shù)據(jù)庫中?

解決方法:

saveOrUpdate嘗試將給定的Entity重新附加到當(dāng)前運(yùn)行的Session,因此Proxies(LAZY association)綁定到Hibernate Session.嘗試使用merge instead of saveOrUpdate,因?yàn)閙erge只是將分離的實(shí)體狀態(tài)復(fù)制到新檢索的托管實(shí)體.這樣,提供的參數(shù)永遠(yuǎn)不會附加到Session.

另一個問題是交易管理.如果您使用線程綁定事務(wù),那么如果要從同一個線程更新兩個DataSource,則需要兩個顯式事務(wù).

嘗試也明確設(shè)置事務(wù)邊界:

public class MultiSessionObject implements Session {

   private Session writeOnlySession;
   private Session readWriteSession;

   @Override
   public void saveOrUpdate(Object arg0) throws HibernateException {

        Transaction readWriteSessionTx = null;
        try {
            readWriteSessionTx = readWriteSession.beginTransaction();
            readWriteSession.merge(arg0);
            readWriteSessionTx.commit();
        } catch (RuntimeException e) {
            if ( readWriteSessionTx != null && readWriteSessionTx.isActive() ) 
                readWriteSessionTx.rollback();
            throw e;
        }

        Transaction writeOnlySessionTx = null;
        try {
            writeOnlySessionTx = writeOnlySession.beginTransaction();
            writeOnlySession.merge(arg0);
            writeOnlySessionTx.commit();
        } catch (RuntimeException e) {
            if ( writeOnlySessionTx != null && writeOnlySessionTx.isActive() ) 
                writeOnlySessionTx.rollback();
            throw e;
        }
   }
}
來源:https://www./content-1-485451.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产伦精品一一区二区三区高清版 | 91插插插外国一区二区婷婷| 国产精品一区二区三区黄色片| 国产精品久久女同磨豆腐| 欧美日韩国产的另类视频| 亚洲欧洲一区二区中文字幕 | 无套内射美女视频免费在线观看| 天堂网中文字幕在线视频| 国产又黄又爽又粗视频在线| 国产精品一区二区视频大全| 国产精品一区二区视频成人 | 99热九九在线中文字幕| 国产情侣激情在线对白| 国产伦精品一区二区三区精品视频| 成人国产激情在线视频| 国产精品免费福利在线| 欧美日韩免费黄片观看| 91熟女大屁股偷偷对白| 国产免费一区二区三区av大片| 亚洲日本中文字幕视频在线观看| 深夜少妇一区二区三区| 99日韩在线视频精品免费| 亚洲一区二区精品免费| 欧美午夜一级特黄大片| 中文字幕亚洲精品人妻| 久久女同精品一区二区| 亚洲国产色婷婷久久精品| 人妻内射在线二区一区| 亚洲中文在线观看小视频| 国产又色又粗又黄又爽| 黄片三级免费在线观看| 国产日韩精品欧美综合区| 免费特黄欧美亚洲黄片| 免费午夜福利不卡片在线 视频| 中文字幕久热精品视频在线| 白丝美女被插入视频在线观看| 精品国产成人av一区二区三区| 美女被啪的视频在线观看| 久久亚洲精品成人国产| 激情爱爱一区二区三区| 国产精品视频一区二区秋霞|