Hibernate---session

Session 用於獲取與數據庫的物理鏈接。 Session 對象是輕量級的,而且設計爲在每次須要與數據庫進行交互時被實例化。持久態對象被保存,並經過 Session 對象檢索找回。數據庫

該 Session 對象不該該長時間保持開放狀態,由於它們一般不能保證線程安全,而應該根據需求被建立和銷燬。Session 的主要功能是爲映射實體類的實例提供建立,讀取和刪除操做。這些實例可能在給定時間點時存在於如下三種狀態之一:安全

  • 瞬時狀態: 一種新的持久性實例,被 Hibernate 認爲是瞬時的,它不與 Session 相關聯,在數據庫中沒有與之關聯的記錄且無標識符值。
  • 持久狀態:能夠將一個瞬時狀態實例經過與一個 Session 關聯的方式將其轉化爲持久狀態實例。持久狀態實例在數據庫中沒有與之關聯的記錄,有標識符值,並與一個 Session 關聯。
  • 脫管狀態:一旦關閉 Hibernate Session,持久狀態實例將會成爲脫管狀態實例。

瞬時狀態就是剛new出來一個對象,尚未被保存到數據庫中,持久化狀態就是已經被保存到數據庫中,離線狀態就是數據庫中有,可是session中不存在該對象。若 Session 實例的持久態類別是序列化的,則該 Session 實例是序列化的。若是 Session 引起異常,則事務必須被回滾,該 session 必須被丟棄。session

Session接口經常使用方法spa

  • Transaction beginTransaction()

  開始工做單位,並返回關聯事務對象。線程

  • void cancelQuery()

  取消當前的查詢執行。設計

  • void clear()

  徹底清除該會話。對象

  • Connection close()

  經過釋放和清理 JDBC 鏈接以結束該會話。接口

  • Criteria createCriteria(Class persistentClass)

  爲給定的實體類或實體類的超類建立一個新的 Criteria 實例。事務

  • Criteria createCriteria(String entityName)

  爲給定的實體名稱建立一個新的 Criteria 實例。字符串

  • Serializable getIdentifier(Object object)

  返回與給定實體相關聯的會話的標識符值。

  • Query createFilter(Object collection, String queryString)

  爲給定的集合和過濾字符建立查詢的新實例。

  • Query createQuery(String queryString)

  爲給定的 HQL 查詢字符建立查詢的新實例。

  • SQLQuery createSQLQuery(String queryString)

  爲給定的 SQL 查詢字符串建立 SQLQuery 的新實例。

  • void delete(Object object)

  從數據存儲中刪除持久化實例。

  • void delete(String entityName, Object object)

  從數據存儲中刪除持久化實例。

  • Session get(String entityName, Serializable id)

  返回給定命名的且帶有給定標識符或 null 的持久化實例(若無該種持久化實例)。

  • SessionFactory getSessionFactory()

  獲取建立該會話的 session 工廠。

  • void refresh(Object object)

  從基本數據庫中從新讀取給定實例的狀態。

  • Transaction getTransaction()

  獲取與該 session 關聯的事務實例。

  • boolean isConnected()

  檢查當前 session 是否鏈接。

  • boolean isDirty()

  該 session 中是否包含必須與數據庫同步的變化?

  • boolean isOpen()

  檢查該 session 是否仍處於開啓狀態。

  • Serializable save(Object object)

  先分配一個生成的標識,以保持給定的瞬時狀態實例。

  • void saveOrUpdate(Object object)

  保存(對象)或更新(對象)給定的實例。

  • void update(Object object)

  更新帶有標識符且是給定的處於脫管狀態的實例的持久化實例。

  • void update(String entityName, Object object)

  更新帶有標識符且是給定的處於脫管狀態的實例的持久化實例。

相關文章
相關標籤/搜索