Hibernate的工作流程:
1. 讀取並解析配置文件
2.讀取並解析映射信息,創建SessionFactory
3. 打開Sesssion
4.創建事務Transation
5. 持久化操作
6.提交事務
7.關閉Session
8. 關閉SesstionFactory
Hibernate中bean 的三種狀態
Hibernate對象分為三種狀態:瞬時態(new 出來的或者實例化時session無關的),
持久態(session關聯)與游離態(曾經與session關聯)。其中持久態的對象是PO
,瞬時態、托管態的對象可作為VO。(PO不應該直接用作v層)所以在使用中應該注意三態的轉化。
如:
在進行數據操作的一系列過程中,save或者saveorupdate操作可以把瞬時態或者游離態的對象轉換成持久態,而
delete或者session的close、flush等操作將會把session相關聯的持久態對象轉換成游離態。
Hibernate對象的狀態和生命周期
使用new操作符初始化的對象是一個瞬時態的(Transient)
(沒有任何跟數據庫表相關聯的行為,只要應用不再引用這些對象,它們的狀態就會丟失,並由垃圾回收機制回收);
瞬時態對象經過save(),saveOrUpdate會轉換成持久態,由session統一管理,持久態對象的操作與數據庫同步;
持久態對象經過evict(),close(),clear()等會轉換成游離態,這時雖然被持久化,但是不在session緩存中,通過
lock(),update(),saveOrUpdate又會轉換成持久態。 通過get(),load(),find(),iterate()
獲得的對象直接就是持久態的。