自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

概括Hibernate對象的三種狀態(tài)

開發(fā) 后端
這里介紹Hibernate對象有三種狀態(tài):transient、persistent、detached。包括介紹save 和update區(qū)別、save 和update區(qū)別等方面。

Hibernate有很多值得學(xué)習(xí)的地方,這里我們主要介紹Hibernate對象,包括介紹update 和saveOrUpdate區(qū)別等方面。

對于Hibernate對象的保存提供了太多的方法,他們之間有很多不同,這里細(xì)說一下,以便區(qū)別:

一.預(yù)備知識:

在所有之前,說明一下,Hibernate對象有三種狀態(tài):transient、persistent、detached

下邊是常見的翻譯辦法:
◆transient:瞬態(tài)或者自由態(tài)
◆persistent:持久化狀態(tài)
◆detached:脫管狀態(tài)或者游離態(tài)

1.脫管狀態(tài)的實(shí)例可以通過調(diào)用save()、persist()或者saveOrUpdate()方法進(jìn)行持久化。

2.持久化實(shí)例可以通過調(diào)用 delete()變成脫管狀態(tài)。通過get()或load()方法得到的實(shí)例都是持久化狀態(tài)的。

3.脫管狀態(tài)的實(shí)例可以通過調(diào)用 update()、0saveOrUpdate()、lock()或者replicate()進(jìn)行持久化。

save()和persist()將會引發(fā)SQL的INSERT,delete()會引發(fā)SQLDELETE,而update()或merge()會引發(fā)SQLUPDATE.對持久化(persistent)實(shí)例的修改在刷新提交的時(shí)候會被檢測到,它也會引起SQLUPDATE.saveOrUpdate()或者replicate()會引發(fā)SQLINSERT或者UPDATE

二.save 和update區(qū)別

把這一對放在***位的原因是因?yàn)檫@一對是最常用的。
◆save的作用是把一個(gè)新的對象保存
◆update是把一個(gè)脫管狀態(tài)的對象保存

三.update 和saveOrUpdate區(qū)別

這個(gè)是比較好理解的,顧名思義,saveOrUpdate基本上就是合成了save和update,引用Hibernate reference中的一段話來解釋他們的使用場合和區(qū)別,通常下面的場景會使用update()或saveOrUpdate():
◆程序在***個(gè)session中加載對象
◆該對象被傳遞到表現(xiàn)層
◆對象發(fā)生了一些改動
◆該對象被返回到業(yè)務(wù)邏輯層
◆程序調(diào)用第二個(gè)session的update()方法持久這些改動

saveOrUpdate()做下面的事:
◆如果對象已經(jīng)在本session中持久化了,不做任何事
◆如果另一個(gè)與本session關(guān)聯(lián)的對象擁有相同的持久化標(biāo)識(identifier),拋出一個(gè)異常
◆如果對象沒有持久化標(biāo)識(identifier)屬性,對其調(diào)用save()
◆如果對象的持久標(biāo)識(identifier)表明其是一個(gè)新實(shí)例化的對象,對其調(diào)用save()
◆如果對象是附帶版本信息的(通過<version>或<timestamp>) 并且版本屬性的值表明其是一個(gè)新實(shí)例化的對象,save()它。否則update() 這個(gè)對象。以上介紹Hibernate對象。

【編輯推薦】

  1. 簡單描述Hibernate單元測試
  2. 概括Hibernate多表關(guān)聯(lián)查詢
  3. 淺談Hibernate Session Factory
  4. 淺析Hibernate加載配置文件
  5. 深入剖析Hibernate核心接口
責(zé)任編輯:佚名 來源: 51CTO.com
相關(guān)推薦

2009-09-24 11:17:32

Hibernate查詢

2009-07-02 09:28:07

Hibernate三種

2009-09-22 14:12:16

Hibernate S

2009-06-23 10:45:18

Hibernate支持

2009-06-29 18:21:29

Hibernate

2009-09-23 17:00:07

Hibernate持久

2009-09-25 14:12:16

Hibernate繼承

2021-09-14 05:32:49

React 前端 組件

2009-09-25 15:15:54

Hibernate檢索

2009-09-24 09:25:10

Hibernate批量

2009-09-22 13:31:28

Hibernate C

2009-09-28 15:24:38

Hibernate V

2009-09-21 16:56:14

Hibernateibatis

2009-09-28 17:27:27

Hibernate A

2010-09-30 11:20:35

DB2表靜默狀態(tài)

2009-09-22 17:55:51

Spring Hibe

2009-09-29 16:29:40

Hibernate查詢

2009-09-22 13:12:25

Hibernateibatis

2009-09-24 13:45:53

Hibernate性能

2009-09-22 09:31:15

Hibernate主鍵
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號