日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hibernate中保存与持久性以及saveOrUpdate之间的区别

發布時間:2023/12/3 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hibernate中保存与持久性以及saveOrUpdate之间的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

保存與保存或更新與持久保存在Hibernate中

save和saveOrUpdate之間的區別是什么或save和persist之間的區別是任何Hibernate面試中常見的面試問題,就像Hibernate中get和load方法之間的區別一樣。 Hibernate Session類提供了幾種方法,可以通過諸如save,saveOrUpdate和
堅持。 您可以根據將對象持久化到數據庫中的要求使用save(),saveOrUpdate()或persist()。 關鍵是所有這些對象都用于將數據存儲到數據庫中,但它們也使瞬態對象在Hibernate中保持不變。

Hibernate問題與Spring框架Interview問題一起 ,由于在ORM中的領先地位,在Java訪談中也很受歡迎。 在出現任何問題之前,最好先準備好Hibernate的一些問題
J2EE訪談 。 其中之一是save,saveOrUpdate和persist之間的區別,我們將在本文的Hibernate中看到這一點。

save和saveOrUpdate方法之間的主要區別是:
save()會在數據庫中生成一個新的標識符和INSERT記錄,而saveOrUpdate可以根據記錄的存在來進行INSERT或UPDATE。 顯然,saveOrUpdate在使用方面更為靈活,但是它涉及額外的處理以找出表中是否已存在記錄。

總而言之,save()方法通過INSERT SQL查詢將記錄保存到數據庫中,生成新的標識符,然后將Serializable標識符返回。

另一方面,基于數據庫中對象的存在,可以使用INSERT或UPDATE的saveOrUpdate()方法。 如果數據庫中已經存在一個持久性對象,則將執行 UPDATE SQL;如果數據庫中沒有相應的對象,則將運行INSERT。

在上一節中,我們看到了save和saveOrUpdate之間的區別是什么,現在我們將看到save與persist方法之間的區別。

1)save和persist之間的第一個區別是返回類型。 與保存方法類似,也將INSERT記錄持久保存到數據庫中,但是
持久的返回類型為空,而保存的返回類型為可序列化對象。

2)持久和保存之間的另一個區別是兩種方法都可以
瞬時實例持久化。 但是,persist()方法不能保證將標識符值立即分配給持久實例,分配可能在刷新時發生。

該圖還說明了Hibernate中持久性對象的生命周期,以及它如何從一種狀態轉移到另一種狀態,例如從“瞬態到持久”到“持久”。
分離。 您可以看到save()和saveOrUpdate()方法都將對象從“瞬態”移動到“持久”狀態。

3)在Hibernate中區別持久化和保存方法的另一件事是它在事務邊界外部的行為。 如果它在事務邊界之外被調用,persist()方法保證不會執行INSERT語句。 save()方法不能保證相同,它返回一個標識符,并且如果必須執行INSERT來獲取該標識符(例如“ identity”生成器),則無論您位于a的內部還是外部,此INSERT都會立即發生。交易。

這些是Hibernate的save,saveOrUpdate和persist方法之間的一些區別 。 這三種方法都與將對象保存到數據庫有關,但是它們的行為卻大不相同。 保存知識,
堅持并保存或更新OrOrUpdate不僅有助于決定如何更好地使用Hibernate API,而且還可以幫助您在Hibernate訪談中表現出色。

您可能喜歡的其他休眠文章和面試問題

  • 2020 Java開發人員路線圖( 指南 )
  • Hibernate中一級和二級緩存之間的區別? ( 回答 )
  • 學習Hibernate和JPA的前5門課程( 課程 )
  • Hibernate中的get()和load()方法之間的區別? ( 回答 )
  • 為Java開發人員提供的5個Spring和Hibernate培訓課程( 列表 )
  • 2本書從零開始學習休眠( 書籍 )
  • 深入學習Spring框架的5本書( 書籍 )
  • 為什么Hibernate Entity類在Java中不應該是final? ( 回答 )
  • Java面試中的10個休眠問題( 列表 )
  • 網上學習Spring和Hibernate的5大熱門課程( 課程 )
  • 學習Java微服務的5大熱門課程( 課程 )
  • Java開發人員的15個Spring Boot面試問題( 問題 )
  • 每個Java開發人員都應該學習的5個Spring Boot功能( 功能 )

感謝您閱讀本文,如果您喜歡本文和面試問題,請與您的朋友和同事分享。 如果您有任何問題或反饋,請發表評論。

翻譯自: https://www.javacodegeeks.com/2020/03/difference-between-save-vs-persist-and-saveorupdate-in-hibernate.html

總結

以上是生活随笔為你收集整理的Hibernate中保存与持久性以及saveOrUpdate之间的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。