第一个错误:
1.SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/F:/jsp/Hibernate03/WebRoot/WEB-INF/lib/slf4j-nop-1.5.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/Administrator/AppData/Local/MyEclipse/MyEclipse%2010/configuration/org.eclipse.osgi/bundles/95/1/.cp/myeclipse-data/3.3/lib/required/slf4j-log4j12-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
org.hibernate.MappingException: Unknown entity: com.jbit.entity.Dept
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:628)
at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1366)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:563)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:551)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:547)
at com.test.Test1.print1(Test1.java:42)
at com.test.Test1.main(Test1.java:19)
出现红色的部分解决方法(以SQLServer为例):
首先看以一下数据库方言配置另外没有
具体配置方法如下:
<property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
其次看一下Hibernate.cfg.xml中是否配置了映射文件
<mapping resource="com/jbit/entity/Dept.hbm.xml" />
紧接着又出现这个错误
很郁闷的是明明数据库方言没有出现错误
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/F:/jsp/Hibernate03/WebRoot/WEB-INF/lib/slf4j-nop-1.5.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/Administrator/AppData/Local/MyEclipse/MyEclipse%2010/configuration/org.eclipse.osgi/bundles/95/1/.cp/myeclipse-data/3.3/lib/required/slf4j-log4j12-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
org.hibernate.HibernateException: 'hibernate.dialect' must be set when no Connection avalable
at org.hibernate.dialect.resolver.DialectFactory.buildDialect(DialectFactory.java:107)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:138)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2119)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2115)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1339)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
at com.test.Test1.print1(Test1.java:32)
at com.test.Test1.main(Test1.java:19)
Exception in thread "main" java.lang.NullPointerException
at com.test.Test1.print1(Test1.java:51)
at com.test.Test1.main(Test1.java:19)
解决方法:
把Configuration cf=new AnnotationConfiguration();
改为
Configuration cf=new AnnotationConfiguration().configure();
这样就成功了