標籤:執行 方法 cat 持久化 rup 調用 insert 合并 游離態
session的方法:
save(): insert
調用save方法之後,瞬時態對象可以變成持久態;
update():update
將游離態對象變為持久態
saveOrUpdate():insert or update
merge():
merge()方法可以完成save()和update()方法的功能,它的意圖是將新的狀態合并到已有的持久化對象上或建立新的持久化對象。
將游離態對象變為持久態。
lock():
lock()方法是把一個沒有更改過的脫管狀態的對象變成持久狀態。
persisit():
persist()方法保證當它在一個事務外部被調用的時候並不觸發一個INSERT語句,當需要封裝一個長會話流程的時候,persist()方法是很有必要的
對於persist()方法,按照官方文檔的說明:
① persist()方法把一個瞬時態的執行個體持久化,但是並不保證標識符被立刻填入到持久化執行個體中,標識符的填入可能被延遲到flush的時間;
② persist()方法保證當它在一個事務外部被調用的時候並不觸發一個INSERT語句,當需要封裝一個長會話流程的時候,persist()方法是很有必要的;
③ save()方法不保證第②條,它要返回標識符,所以它會立即執行INSERT語句,不管是在事務內部還是外部。
瞬時態的執行個體可以通過調用save()、persist()或者saveOrUpdate()方法變成持久態;
游離態的執行個體可以通過調用 update()、saveOrUpdate()、lock()或者replicate()變成持久態。
hibernate對象的三種狀態:瞬時態/持久態/游離態
Hibernate Session的save()、update()、merge()、lock()、saveOrUpdate()和persist()方法分別是做什麼的?有什麼區別?