程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java Hibernate save()與persist()差別

java Hibernate save()與persist()差別

編輯:關於JAVA

java Hibernate save()與persist()差別。本站提示廣大學習愛好者:(java Hibernate save()與persist()差別)文章只能為提供參考,不一定能成為您想要的結果。以下是java Hibernate save()與persist()差別正文


Hibernate 之所以供給與save()功效簡直完整相似的persist()辦法,一方面是為了照料JPA的用法習氣。另外一方面,save()和 persist()辦法還有一個差別:應用 save() 辦法保留耐久化對象時,該辦法前往該耐久化對象的標識屬性值(即對應記載的主鍵值);但應用 persist() 辦法來保留耐久化對象時,該辦法沒有任何前往值。由於 save() 辦法須要立刻前往耐久化對象的標識屬性,所以法式履行 save() 會立刻將耐久化對象對應的數據拔出數據庫;而 persist() 則包管當它在一個事物內部被挪用時,其實不立刻轉換成 insert 語句, 這個功效是很有效的,特別當我們封裝一個長會話流程的時刻,persist() 辦法就顯得尤其主要了。

這裡給出一個明白的辨別。(可以跟進src看一下,固然完成步調相似,然則照樣有纖細的差異)
重要內容差別:
1,persist把一個瞬態的實例耐久化,然則並"不包管"標識符(identifier主鍵對應的屬性)被連忙填入到耐久化實例中,標識符的填入能夠被推延到flush的時刻。
2,save, 把一個瞬態的實例耐久化標識符,實時的發生,它要前往標識符,所以它會立刻履行Sql insert

其它網友的說明:


save辦法

保留耐久化對象時,該辦法前往該耐久化對象的標識屬性值(即主鍵)。
該辦法會立刻將耐久化對象的對應數據拔出數據庫。

persist辦法

該辦法沒有前往任何值。

包管當它在一個事務內部被挪用時,其實不立刻轉換為insert語句。
實用於長會話流程。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved