錯誤1:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
錯誤原因:
這是一個警告信息,提示說沒有找到Log4j的配置信息,不能為Hibernate環境提供日志信息,要求初始化log4j配置文件。
解決方法:
在項目的src下添加log4j.properties文件,該文件是log4j配置信息,內容如下:
錯誤2:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Level
錯誤原因:
缺少log4j,因為hibernate框架本身也使用了第三方組件log4j來輸出Hibernate環境下執行的信息。
解決方法:
為項目導入log4j-1.2.15.jar包,或其他版本的都可以。
錯誤3:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
錯誤原因:
找不到類StaticLoggerBinder,缺少日志接口包slf4j-log4j.jar
解決方法:
導入slf4j-log4j12-1.5.8.jar,這個包與Hibernate3.3.2的版本對應
錯誤4:
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
錯誤原因:
找不到類LoggerFactory,缺少包slf4j-api.jar
解決方法:
導入slf4j-api-1.5.8.jar,這個包與Hibernate3.3.2的版本對應
錯誤5:
SLF4J: The requested version 1.6.99 by your slf4j binding is not compatible with [1.5.5, 1.5.6, 1.5.7, 1.5.8]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.
錯誤原因:
這是jar包slf4j-log4j12.jar版本與Hibernate版本不相符引起的
解決方法:
刪除原來的版本的jar包,導入slf4j-log4j12-1.5.8.jar這個版本的jar包
錯誤6:
Exception in thread "main" java.lang.AbstractMethodError: Oracle.jdbc.driver.OracleDatabaseMetaData.supportsGetGeneratedKeys()Z
錯誤原因:
在Hibernate下,導入classes12.jar時會報這個錯誤
解決方法:
刪除classes12.jar,導入ojdbc5.jar或ojdbc6.jar來取代
錯誤7:
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
錯誤原因:
Hibernate是采用JDBC 驅動,在配置文件hibernate.cfg.xml的<session-factory name="test">節點多了一個name屬性
解決方法:
刪除節點<session-factory>的name屬性
Hibernate 的詳細介紹:請點這裡
Hibernate 的下載地址:請點這裡
Hibernate 中文手冊 PDF http://www.linuxidc.com/Linux/2013-10/91208.htm