| JAR 類別 | 代表檔名 | 用途 |
| 核心框架 | hibernate-core-5.2.x.Final.jar | ORM 核心功能 |
| 位元組碼操作 | javassist-3.x.GA.jar | 動態代理、實體增強 |
| 字節碼庫 | byte-buddy-1.x.jar | 現代字節碼操作(5.2 新增) |
| 反射工具 | antlr-2.7.7.jar | HQL/JPQL 解析 |
| 集合工具 | hibernate-commons-annotations-5.0.x.Final.jar | 註解處理 |
| 規範 API | jboss-transaction-api_1.2_spec-1.0.x.Final.jar | JTA 事務規範 |
| 日誌門面 | jboss-logging-3.3.x.Final.jar | 統一日誌介面 |
| 資源管理 | javax.persistence-api-1.0.x.jar / jakarta.persistence-api-2.2.x.jar | JPA 規範 API |
| 驗證框架 | validation-api-1.1.x.Final.jar / 2.0.x.Final.jar | Bean Validation |
| 類別掃描 | classmate-1.3.x.jar | 類別/註解掃描 |
| 國際化 | hibernate-jpa-2.1-api-1.0.x.Final.jar | JPA 2.1 API |
注意:具體檔名隨小版本變動,請以官方發布包 lib/required 實際內容為準。
資料庫驅動(必須額外加入)
| 資料庫 | 驅動 JAR | Maven 坐標 |
| MySQL | mysql-connector-java-5.1.x.jar / 8.0.x.jar | mysql:mysql-connector-java |
| PostgreSQL | postgresql-42.x.jar | org.postgresql:postgresql |
| Oracle | ojdbc8.jar | com.oracle.jdbc:ojdbc8 |
| SQL Server | mssql-jdbc-7.x.jre8.jar | com.microsoft.sqlserver:mssql-jdbc |
可選依賴目錄說明
| 目錄 | 用途 | 是否必要 |
| required | 核心運行依賴 | 是 |
| jpa | JPA 專用依賴 | 使用 JPA 時是 |
| envers | 實體審計/版本控制 | 啟用 Envers 時是 |
| c3p0 | C3P0 連接池整合 | 使用 C3P0 時是 |
| proxool | Proxool 連接池整合 | 使用 Proxool 時是 |
| ehcache | EhCache 二級快取整合 | 使用 EhCache 時是 |
| infinispan | Infinispan 二級快取整合 | 使用 Infinispan 時是 |
| optional | 其他可選整合 | 按需引入 |
Maven 依賴最佳實踐
<dependencies>
<!-- 核心:遞移自動引入 required 所有依賴 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.18.Final</version>
</dependency>
<!-- 資料庫驅動(必須額外宣告) -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
<!-- 連接池(生產環境必備,推薦 HikariCP) -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>4.0.3</version>
</dependency>
</dependencies>
常見遺漏導致的啟動錯誤
NoClassDefFoundError: org/javassist/ClassPool → 缺少 javassist(required 已含,檢查版本衝突)
NoClassDefFoundError: net/bytebuddy/ByteBuddy → 缺少 byte-buddy(Hibernate 5.2+ 必須)
Unable to load class [com.mysql.jdbc.Driver] → 缺少 MySQL 驅動
NoClassDefFoundError: javax/validation/Validation → 缺少 validation-api
總結
Hibernate 5.2 依賴管理原則:信任 required 目錄全量引入,補上資料庫驅動,按功能從 optional 目錄按需添加。Maven 專案直接依賴 hibernate-core 即可自動解析 required 遞移依賴,僅需額外宣告驅動與連接池。版本升級時關注 byte-buddy、jakarta.persistence 等新增依賴的版本相容性。
- 上一篇文章: Struts 2.5 最小依賴 JAR 清單:9 個核心 JAR 完整版本對照表
- 下一篇文章: Java 實現 LIS 最長上升子序列算法:出操隊形問題完整解法
Copyright ©
程式碼之家 All Rights Reserved