偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Hibernate的游離狀態(tài)

開發(fā) 后端
本文介紹Hibernate的三個狀態(tài),此為第一部分。Java應用程序與Hibernate之間的主要運行時接口。它是抽象了持久化服務概念的核心抽象API類。

Java應用程序與Hibernate之間的主要運行時接口。它是抽象了持久化服務概念的核心抽象API類。
Session的生命周期綁定在一個物理的事務(tansaction)上面。(長的事務可能跨越多個數據庫事物。)

Session的主要功能是提供對映射的實體類實例的創(chuàng)建,讀取和刪除操作。
實例可能以下面三種狀態(tài)存在:
◆自由狀態(tài)(transient): 不曾進行持久化,未與任何Session相關聯
◆持久化狀態(tài)(persistent): 僅與一個Session相關聯
◆游離狀態(tài)(detached): 已經進行過持久化,但當前未與任何Session相關聯

游離狀態(tài)的實例可以通過調用update(),lock(),replicate(),save(),persist()或者saveOrUpdate()方法進行持久化。持久化實例可以通過調用 delete()變成游離狀態(tài)。通過get()或load()方法得到的實例都是持久化狀態(tài)的。游離或者自由狀態(tài)下的實例可以通過調用merge()方法成為一個新的持久化實例。
save()和persist()將會引發(fā)SQL的INSERT,delete()會引發(fā)SQLDELETE,而update()或merge()會引發(fā)SQLUPDATE。對持久化(persistent)實例的修改在刷新提交的時候會被檢測到,它也會引起SQLUPDATE。saveOrUpdate()或者replicate()會引發(fā)SQLINSERT或者UPDATE。

其具體實現并不一定是線程安全的。每個線程/事務應該從一個SessionFactory獲取自己的session實例。

如果其持久化對象類是可序列化的,則Session實例也是可序列化的。

一個典型的事務應該使用下面的形式:Session sess = factory.openSession();

  1. Transaction tx;  
  2. try {  
  3. tx = sess.beginTransaction();  
  4. //do some work  
  5. ...  
  6. tx.commit();  
  7. }  
  8. catch (Exception e) {  
  9. if (tx!=null) tx.rollback();  
  10. throw e;  
  11. }  
  12. finally {  
  13. sess.close();  

如果Session拋出了異常, 事務必須回滾而session會被廢棄。在異常發(fā)生后Session的內部狀態(tài)可能會與數據庫失去同步

【編輯推薦】

  1. Hibernate基礎(2)
  2. 擴展hibernate的查詢
  3. 簡單的Hibernate入門介紹
  4. 在Liferay中使用Hibernate
  5. Hibernate模糊查詢參數化的問題
責任編輯:book05 來源: 百度博客
相關推薦

2009-06-03 09:11:03

Hibernate工作原理體系結構

2009-06-17 15:06:50

Hibernate實體

2009-09-28 11:30:53

Hibernate核心

2009-07-02 09:28:07

Hibernate三種

2009-09-25 15:58:04

Hibernate對象

2009-06-26 10:10:00

Hibernate狀態(tài)

2009-09-24 16:22:50

Hibernate自動

2009-07-02 09:38:17

Hibernate延時

2009-06-26 10:07:00

Hibernate狀態(tài)

2009-09-23 17:00:07

Hibernate持久

2009-06-18 11:43:40

Hibernate uHibernate s

2012-02-03 11:31:33

HibernateJava

2009-06-06 15:37:22

Hibernate性能

2009-06-26 10:01:00

Hibernate的查

2012-02-03 11:17:33

HibernateJava

2009-07-02 09:40:14

Hibernate的繼

2009-09-25 09:04:27

Hibernate類型

2009-06-26 16:33:09

saveOrUpdatHibernate

2012-02-08 14:24:35

HibernateJava

2009-06-12 15:05:03

cascadeHibernate
點贊
收藏

51CTO技術棧公眾號