熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Hibernate session的方法的一些說明

2022-06-13   來源: Java開源技術 

  用Hibernate肯定會頻繁的用到session下面就將Hibernate session中一些經常的用方法逐個的解釋一下

  Transaction beginTransaction()

  開始一個工作單元並返回一個與之相關Transaction對象最為事務的開始通常在需要對數據庫進行更改例如saveupdate或delete時使用在事務結束後需要調用Transaction的commit方法提交更改該方法必須在Hibernate session關閉之前使用

  void flush() void clear()

  這兩個方法通常在一起使用由於Hibernate有緩存數據的功能所以當我們要批量查詢和批量插入時會因為大量的緩存而導致內存溢出所以我們可以在執行批量插入時插入一定數目的數據後調用flush()提交插入然後調用clear()清空當前Hibernate session內的所有緩存批量查詢同理

  Connection close()

  關閉Hibernate session同時清空所有的緩存

  Connection connection()

  獲取當前Hibernate session使用的JDBC connection

  boolean contains(Object object)

  返回boolean值判斷一個實例是否與當前Hibernate session保持關聯即為持久化狀態

  Query createQuery(String queryString)

  返回一個給定HQL語句的Query對象

  SQLQuery createSQLQuery(String queryString)

  返回一個用於執行原生SQL語句的SQLQuery對象

  void delete(Object object)

  刪除與該對象關聯的數據裡內的一條記錄該對象可以是處於持久化狀態也可以是處於瞬態但與數據庫的記錄有id聯系如果該對象的cascade屬性為delete或all將會同時刪除相關聯的數據

  void delete(String entityName Object object)

  不太明白什麼意思占個位

  Connection disconnect()

  斷開與session與當前JDBC的連接如果連接有Hibernate管理則將連接送回連接池否則將送回給程序本身

  Object get(Class clazz Serializable id)

  根據指定的實體類以及實體id返回一個實體的實例如果找不到記錄則返回null

  Object get(String entityName Serializable id)

  同上entity為實體的名字

  String getEntityName(Object object)

  返回一個持久化類的實體名

  Serializable getIdentifier(Object object)

  返回一個被session緩存的實體實例的id

  Query getNamedQuery(String queryName)

  返回一個在映射文件中定義的命名查詢的query對象

  SessionFactory getSessionFactory()

  獲取生成當前session的SessionFactory

  Transaction getTransaction()

  不說了地球人都知道

  Object load(Class theClass Serializable id)

  Object load(String entityName Serializable id)

  和get方法一個效果不同的是該方法在找不到對應記錄時會拋出異常

  Serializable save(Object object)

  將一個實體實例持久化返回該持久化實例的id在持久化之前必須手動或自動的指派id

  void update(Object object)

  通過給定的分離狀態的實例的id更新數據庫記錄如果在持久化類中有相同的id則會拋出異常如果這個實例cascade設置為saveupdate或all是將同時更新所有關聯的實例記錄

  void saveOrUpdate(Object object)


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28676.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.