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之间的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最大连接数是什么意思(最大连接数linu
- 下一篇: 电脑固态硬盘的分类(电脑固态硬盘的分类有