Hibernate是java (對象關係映射)ORM管理框架; Hibernate對象就是O--java實體;Hibernate經過對實體的管理在不一樣狀態之間的轉換來實現關係數據庫的映射;java
Hibernate對象狀態:sql
瞬時狀態:Hibernate中沒有和Session作關聯的對象實例;
數據庫
持久化狀態:Hibernate中和session關聯的對象實例;緩存
遊離狀態:持久化實例的關聯在session關閉以後轉檯變爲了遊離狀態;
session
注:1,如何理解對象實例和Hibernate Session 關聯?(Session生命週期 緩存 事務)
框架
Session的生命週期便隨 session開啓 事務開啓 緩存建立 事務關閉 session關閉;實例關聯主要在於緩存(對於緩存的理解不概述,在這裏咱們就看作一個Map);對象的關聯就是把實例對象進行緩存,想Map中添加一個對象實例的引用,並分配一個ID;spa
//初始化一個對象 HibernateObjectStat stat = new HibernateObjectStat(); //瞬時對象 OC oc = stat.new OC(); //session open tran start Map<String,Object> sessionCacheMap = new HashMap<String, Object>(); // put for session cache //持久化對象 sessionCacheMap.put("KEY", oc); //tran commit,session close,cache remove //遊離對象 sessionCacheMap.remove("KEY");
2,關於原生(native)sql session緩存是不起做用的; code