中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

开阳县| 体育| 新河县| 汨罗市| 莒南县| 醴陵市| 商城县| 开鲁县| 南郑县| 古田县| 科技| 雷州市| 梅河口市| 托克逊县| 枣庄市| 江孜县| 南开区| 纳雍县| 绥滨县| 新郑市| 秦安县| 镇雄县| 昌吉市| 贡山| 吉木萨尔县| 庆元县| 铁岭市| 阿拉善左旗| 巨野县| 商都县| 于田县| 崇州市| 宁乡县| 台安县| 丰都县| 康平县| 贺州市| 平山县| 永安市| 昭苏县| 阿鲁科尔沁旗|