成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深入了解Hibernate自動狀態檢測

開發 后端
Hibernate自動狀態檢測是通過一個方法實現的。Hibernate的用戶曾要求一個既可自動分配新持久化標識(identifier)保存瞬時(transient)對象,又可更新/重新關聯脫管(detached)實例的通用方法。

Hibernate自動狀態檢測為用戶帶來了很大的方便,它是通過一個方法來具體實現這個功能的,下面我們主要就該方法深入學習。

Hibernate的用戶曾要求一個既可自動分配新持久化標識(identifier)保存瞬時(transient)對象,又可更新/重新關聯脫管(detached)實例的通用方法。Hibernate自動狀態檢測是saveOrUpdate()方法實現了這個功能。

  1. // in the first session  
  2. Cat cat = (Cat) firstSession.load(Cat.class, catID);  
  3.  
  4. // in a higher tier of the application  
  5. Cat mate = new Cat();  
  6. cat.setMate(mate);  
  7.  
  8. // later, in a new session  
  9. secondSession.saveOrUpdate(cat);   // update existing state (cat has a non-null id)  
  10. secondSession.saveOrUpdate(mate);  // save the new instance (mate has a null id) 

saveOrUpdate()用途和語義可能會使新用戶感到迷惑。 首先,只要你沒有嘗試在某個session中使用來自另一session的實例,你就應該不需要使用update(), saveOrUpdate(),或merge()。有些程序從來不用這些方法。

◆通常下面的場景會使用update()或saveOrUpdate():

◆程序在第一個session中加載對象

◆該對象被傳遞到表現層

◆對象發生了一些改動

◆該對象被返回到業務邏輯層

◆程序調用第二個session的update()方法持久這些改動

◆saveOrUpdate()做下面的事:

◆如果對象已經在本session中持久化了,不做任何事

◆如果另一個與本session關聯的對象擁有相同的持久化標識(identifier),拋出一個異常

◆如果對象沒有持久化標識(identifier)屬性,對其調用save()

◆如果對象的持久標識(identifier)表明其是一個新實例化的對象,對其調用save()

◆如果對象是附帶版本信息的(通過) 并且版本屬性的值表明其是一個新實例化的對象,save()它。

◆否則update() 這個對象

◆merge()可非常不同:

◆如果session中存在相同持久化標識(identifier)的實例,用用戶給出的對象的狀態覆蓋舊有的持久實例

◆如果session沒有相應的持久實例,則嘗試從數據庫中加載,或創建新的持久化實例

◆最后返回該持久實例

◆用戶給出的這個對象沒有被關聯到session上,它依舊是脫管的 。

這就是實現Hibernate自動狀態檢測的說明。

【編輯推薦】

  1. Hibernate中Criteria攻略詳解
  2. 簡述Hibernate三種查詢的應用
  3. 談談Hibernate為何是Java開源項目
  4. 淺析為何學習Hibernate
  5. 淺析Hibernate VO與PO區別
責任編輯:仲衡 來源: javanb
相關推薦

2022-06-03 10:09:32

威脅檢測軟件

2010-07-13 09:36:25

2010-11-19 16:22:14

Oracle事務

2020-09-21 09:53:04

FlexCSS開發

2022-08-26 13:48:40

EPUBLinux

2009-08-25 16:27:10

Mscomm控件

2010-06-23 20:31:54

2020-07-20 06:35:55

BashLinux

2024-05-29 07:50:41

2011-07-18 15:08:34

2010-11-15 11:40:44

Oracle表空間

2018-06-22 13:05:02

前端JavaScript引擎

2021-01-19 12:00:39

前端監控代碼

2021-04-28 10:13:58

zookeeperZNode核心原理

2013-04-16 10:20:21

云存儲服務云存儲SLA服務水平協議

2010-11-08 13:54:49

Sqlserver運行

2010-09-27 09:31:42

JVM內存結構

2013-10-09 11:07:31

日志文件系統

2010-09-28 09:14:36

HTML DOMJavascript
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美亚洲一区二区三区 | 国产区一区二区三区 | 精品久久久久久久久久 | www.欧美| 久久久久亚洲 | 欧美美女二区 | 激情五月激情综合网 | 91在线一区 | 欧美一卡二卡在线 | 欧美精品一区二区在线观看 | 欧美中文字幕一区 | 亚洲欧美一区二区三区在线 | 中文字幕在线视频网站 | 极品销魂美女一区二区 | 日本精品久久久久久久 | 播放一级毛片 | 在线色网站 | 在线免费观看黄色av | 日韩欧美日韩在线 | 二区久久| 久久99蜜桃综合影院免费观看 | 欧美日本一区二区 | 成人精品国产 | 欧美精品久久久 | 成人午夜视频在线观看 | 综合欧美亚洲 | 亚洲成人精品免费 | 成人免费小视频 | 国产综合久久久 | 国产精品久久久乱弄 | 日韩毛片免费视频 | 91文字幕巨乱亚洲香蕉 | 亚洲成人在线网 | 亚洲一区二区三区四区五区午夜 | 国产精品一区二区在线 | 亚洲在线一区二区 | 国产1区2区3区 | 男人的天堂avav| 国产亚洲精品精品国产亚洲综合 | 亚洲精品视频观看 | 久久国产精品免费视频 |