91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

任丘市| 乌拉特后旗| 龙江县| 黔江区| 安龙县| 凤冈县| 永吉县| 淮安市| 碌曲县| 阳谷县| 昌平区| 洞头县| 娄底市| 高陵县| 桦甸市| 南康市| 宝丰县| 拉萨市| 治多县| 平乡县| 昌黎县| 阳曲县| 偏关县| 潞城市| 五家渠市| 乌海市| 深州市| 茶陵县| 济南市| 江陵县| 吉安县| 阿拉尔市| 达州市| 兰考县| 涞源县| 正宁县| 巩义市| 温泉县| 夏邑县| 泾川县| 奉化市|