hibernate的三種狀態轉換

hibernate有三種狀態,分別爲瞬時狀態、持久化狀態、遊離或託管狀態。

1.瞬時狀態:

是指剛創建一個實例對象,沒有與自增的id和session有關聯

SessionFactory conf=new Configuration().configure().buildSessionFactory();
Session session = conf.openSession();
		//session獲得操作事務的Transaction對象,此爲獲得一個事務對象並開啓事務
Transaction ts=session.beginTransaction()
Customer cus=new Customer();//沒有id,沒有與session有關聯=》瞬時狀態
cus.setCust_name("旺達");瞬時狀態

2.持久化狀態

當進行保存時、更新會變成持久化狀態

session.save(cus);//持久化狀態--與id、session有關聯
session.update(cus);//持久化狀態--與id、session有關聯

3.遊離狀態

當與某持久狀態關聯的session關閉之後,即由持久狀態轉變爲遊離狀態

session.close();//釋放資源---遊離狀態,數據庫裏面跟id有關,但跟session無關 ,即數據庫存在該對象,但是該對象又沒有被session所託管

三種狀態的轉換圖可以描述爲:


saveorupdate()方法可以把遊離對象和瞬時對象轉變爲持久對象。

轉變爲持久化狀態的好處是:使hibernate自動進行數據庫的操作,實時更新數據庫



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章