Hibernate 核心介面位於業務邏輯層與持久層之間,協調物件操作與資料庫互動。
| 介面 | 職責 | 關鍵特性 |
|---|---|---|
| Session | 執行 CRUD 操作,管理持久化物件生命週期 | 非執行緒安全;非 JSP HttpSession |
| SessionFactory | 初始化 Hibernate,建立 Session,充當資料來源代理 | 重量級,通常每專案/每資料庫僅需一個 |
| Configuration | 讀取配置與映射文件,建立 SessionFactory | 啟動階段使用 |
| Transaction | 管理資料庫交易(可選,亦可自行控制底層交易) | 統一交易 API,支援 JDBC/JTA |
| Query / Criteria | 執行資料庫查詢,支援 HQL 與原生 SQL | Criteria 提供型別安全的物件化查詢建構 |
Session 輕量、非執行緒安全,**請勿**在多執行緒間共用;每個請求/交易應開啟新 Session。SessionFactory 昂貴建構,應用程式啟動時建立一次,全域共用。Configuration 僅啟動時使用,讀取 hibernate.cfg.xml 與 *.hbm.xml。Transaction 介面為選用,建議統一使用以簡化交易控制碼。Query 介面支援命名參數(:param)與分頁(setFirstResult/setMaxResults)。