亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hibernate中merge如何使用

發布時間:2021-07-24 17:10:41 來源:億速云 閱讀:248 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關Hibernate中merge如何使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

  Hibernate中的merge怎么使用

  當ID在數據庫中能找到的時候,update與merge的執行效果都是更新數據,發出update語句;

  如果沒有設置ID的話,則這個對象就當作瞬態處理:

  用update的話,由于沒有ID,所以會報異常,merge此時則會保存數據,根據ID生產策略生成一條數據;

  Sessionsession1=HibernateUtils.getSession();   Transactiontransaction1=session1.beginTransaction();   Studentsstr1=newStudents();   str1.setStu_id(4);   str1.setName("222");   session1.merge(str1);   str1.setName("333");   transaction1.commit();   session1.clear();   session1.close();

  下面是當對象在第一個session關閉后,處于游離狀態,第二個session開啟,又get或load一樣的ID的數據出來時,在第二個session中update那個游離態對象,update肯定會出錯,原因是程序會報持久層中已經有該對象,因為第二個session重新從數據庫中獲取了一個對象成持久態,你的update會讓那個游離態對象也變成持久態,兩個持久態會沖突撒,然而用merge的話,它會把第一個的對象數據賦值給已經處于持久化的那個對象中,自己本身不得變為持久態;

  Hibernate中的merge怎么使用

  Sessionsession1=HibernateUtils.getSession();   Transactiontransaction1=session1.beginTransaction();   Studentsstr1=(Students)session1.get(Students.class,2);   transaction1.commit();   session1.clear();   session1.close();   Sessionsession2=HibernateUtils.getSession();   Transactiontransaction2=session2.beginTransaction();   Studentsstr2=(Students)session2.get(Students.class,2);   session2.merge(str1);   transaction2.commit();   session2.clear();   session2.close();   Sessionsession2=HibernateUtils.getSession();   Transactiontransaction2=session2.beginTransaction();   Studentsstr2=(Students)session2.get(Students.class,2);   str1.setName("wer");   session2.merge(str1);   System.out.println(str2.getName());//這里改變了,說明持久態的數據也會改變   str2.setName("ee");   System.out.println(str1.getName());//這里不會改變,說明第一個游離態的數據沒有被持久化撒;   transaction2.commit();   session2.clear();   session2.close();

看完上述內容,你們對Hibernate中merge如何使用有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

伊吾县| 新河县| 五华县| 凌海市| 黑龙江省| 石台县| 淮北市| 金寨县| 香港| 深州市| 巩留县| 台湾省| 昭觉县| 延津县| 双柏县| 青州市| 高陵县| 水城县| 徐州市| 古蔺县| 肇源县| 马关县| 离岛区| 鄂托克旗| 普格县| 临潭县| 安国市| 武邑县| 武川县| 维西| 横山县| 罗江县| 应城市| 新余市| 法库县| 高雄县| 班戈县| 梅州市| 抚松县| 德阳市| 盐山县|