Hibernate 經歷兩大里程碑版本:
net.sf.hibernateorg.hibernate,兩版本可共存。產品線擴展:Hibernate Annotations、EntityManager (JPA 實作)、工具外掛,並支援 .NET 平台,生態大幅增強。
net.sf.hibernate → org.hibernate,升級首步:全域取代 import。HibernateException 及子類改繼承 RuntimeException,編譯期不再強制捕捉,簡化程式碼。createSQLQuery() 移至 org.hibernate.classic.Session,新代碼應用 SQLQuery 介面。UserType、CompositeUserType 移至 org.hibernate.usertype,新增方法需實作;新增 ParameterizedType 利於型別重用。hibernate-mapping-3.0.dtd 取代 2.0 版。false → true。Hibernate 2 預設急切抓取導致效能差;3.x 預設延遲載入,按需抓取,大幅降低記憶體與查詢開銷。需急切載入者須顯式設定 lazy="false"。hibernate.query.factory_class 切換。| 項目 | 動作 |
|---|---|
| Import 套件 | net.sf.hibernate → org.hibernate |
| 映射檔 DTD | 更新 DOCTYPE 宣告至 3.0 |
| lazy 屬性 | 檢查關聯/集合是否需改為 lazy="false" |
| 自訂 UserType | 實作新介面方法、移至 usertype 套件 |
| 原生 SQL 查詢 | 改用 SQLQuery 介面 |
| 異常處理 | 移除不必要的 try-catch HibernateException |
Hibernate 3 以 API 現代化、效能預設優化、查詢引擎重寫三大支柱,奠定其 ORM 霸主地位。理解變更細節與遷移路徑,能讓舊專案平滑升級、新專案發揮最大效能紅利。