首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Hibernate 配置常見錯誤與解決方案:NoClassDefFoundError 系列完整對照表

     編輯:Java 相關知識

Hibernate 早期版本依賴大量第三方 JAR,缺少任一依賴即拋 NoClassDefFoundError。本文整理 10 大高頻錯誤與對應 JAR 解決方案。

錯誤對照表

#錯誤訊息缺少 JAR用途
1NoClassDefFoundError: org/dom4j/DocumentExceptiondom4j.jar解析 hibernate.cfg.xml
2NoClassDefFoundError: org/apache/commons/logging/LogFactorycommons-logging.jar日誌門面
3NoClassDefFoundError: org/apache/commons/collections/SequencedHashMapcommons-collections.jar內部集合實現
4NoClassDefFoundError: net/sf/ehcache/CacheExceptionehcache.jar二級快取
5警告: No configuration found. Configuring ehcache from ehcache-failsafe.xmlehcache.xml (重命名 failsafe)快取配置檔
6ClassNotFoundException: net.sf.cglib.transform.impl.InterceptFieldEnabledcglib-full-2.0.02.jar字節碼增強(舊版)
7NoSuchMethodError: net.sf.cglib.proxy.Enhancer.setInterceptDuringConstruction(Z)Vcglib-nodep-2.1_3.jar字節碼增強(新版)
8NoClassDefFoundError: javax/transaction/Synchronizationjta.jarJTA 事務 API
9NoClassDefFoundError: antlr/ANTLRExceptionantlr-2.7.5h3.jarHQL/AST 解析
10SQLException: The statement has no open cursor配置 <property name="jdbc.fetch_size">50</property> 註解掉MySQL 驅動相容性

現代解決方案:Maven/Gradle 依賴管理



<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.6.15.Final</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.33</version>
</dependency>

避坑指南

  1. 不要手動管理 JAR:務必使用建構工具傳遞依賴
  2. 版本衝突排查:mvn dependency:tree / gradle dependencies 找出衝突
  3. CGLIB 版本:Hibernate 5 內建 cglib-nodep,勿重複引入
  4. ehcache.xml:放在 src/main/resources,而非 JAR 內
  5. JDBC fetch_size:MySQL Connector/J 5.1.30+ 已修復游標問題,可移除配置
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved