`

Hibernate随记

阅读更多

在之前接触过Hibernate,不太熟练并且一直很排斥它,认为其封装太多,不利于真正的掌握sql或数据库,又比较复杂繁琐, 一直没有很好的掌握它。最近项目要用到hibernate,没想到写了第一个例子,就出了N多错误, 随手记录一下。

1.配置Hibernate的连接池

 

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>
		<!-- Database connection settings -->
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql://127.0.0.1:3306/test</property>
		<property name="connection.username">root</property>
		<property name="connection.password">123</property>
		<!-- JDBC connection pool (use the built-in) -->
		<property name="connection.pool_size">1</property>
		<!-- SQL dialect -->
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
		<!-- Enable Hibernate's automatic session context management -->
		<property name="current_session_context_class">thread</property>
		<!-- Disable the second-level cache -->
		<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
		<!-- Echo all executed SQL to stdout -->
		<property name="show_sql">true</property>
		<!-- Drop and re-create the database schema on startup -->
		<property name="hbm2ddl.auto">update</property>
		<mapping resource="com/longcheer/domain/Event.xml"/>
	</session-factory>
</hibernate-configuration>

 2.异常整理

[1].缺antlr-2.7.6.jar

Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
	at $Proxy0.createQuery(Unknown Source)
	at com.longcheer.manager.EventManager.listEvents(EventManager.java:40)
	at com.longcheer.manager.EventManager.main(EventManager.java:16)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:345)
	... 3 more
Caused by: java.lang.NoClassDefFoundError: antlr/ANTLRException
	at org.hibernate.hql.ast.ASTQueryTranslatorFactory.createQueryTranslator(ASTQueryTranslatorFactory.java:58)
	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:98)
	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
	at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:124)
	at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
	at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
	at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1770)
	... 8 more
Caused by: java.lang.ClassNotFoundException: antlr.ANTLRException
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	... 15 more
 

[2].缺commons-collections-3.1.jar

 

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/map/LRUMap
	at org.hibernate.util.SimpleMRUCache.init(SimpleMRUCache.java:71)
	at org.hibernate.util.SimpleMRUCache.<init>(SimpleMRUCache.java:55)
	at org.hibernate.engine.query.QueryPlanCache.<init>(QueryPlanCache.java:76)
	at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:239)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)
	at com.longcheer.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:10)
	at com.longcheer.util.HibernateUtil.<clinit>(HibernateUtil.java:7)
	at com.longcheer.manager.EventManager.createAndStoreEvent(EventManager.java:18)
	at com.longcheer.manager.EventManager.main(EventManager.java:13)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.map.LRUMap
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	... 9 more

 [3].缺ejb3-persistence.jar

 

Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/EntityListeners
	at org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.getDefaults(JPAMetadataProvider.java:96)
	at org.hibernate.annotations.common.reflection.java.JavaReflectionManager.getDefaults(JavaReflectionManager.java:226)
	at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1385)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1856)
	at com.longcheer.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:10)
	at com.longcheer.util.HibernateUtil.<clinit>(HibernateUtil.java:7)
	at com.longcheer.manager.EventManager.createAndStoreEvent(EventManager.java:18)
	at com.longcheer.manager.EventManager.main(EventManager.java:13)
Caused by: java.lang.ClassNotFoundException: javax.persistence.EntityListeners
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	... 8 more

 [4].缺jta-1.1.jar

 

Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/Synchronization
	at org.hibernate.impl.SessionFactoryImpl.buildCurrentSessionContext(SessionFactoryImpl.java:1242)
	at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:395)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)
	at com.longcheer.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:10)
	at com.longcheer.util.HibernateUtil.<clinit>(HibernateUtil.java:7)
	at com.longcheer.manager.EventManager.createAndStoreEvent(EventManager.java:18)
	at com.longcheer.manager.EventManager.main(EventManager.java:13)
Caused by: java.lang.ClassNotFoundException: javax.transaction.Synchronization
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	... 7 more

 [5].缺javassist-3.12.0.GA.jar

 

Exception in thread "main" java.lang.ExceptionInInitializerError
	at com.longcheer.manager.EventManager.createAndStoreEvent(EventManager.java:18)
	at com.longcheer.manager.EventManager.main(EventManager.java:13)
Caused by: org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
	at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:108)
	at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:133)
	at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:80)
	at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:322)
	at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:485)
	at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:133)
	at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)
	at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:286)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)
	at com.longcheer.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:10)
	at com.longcheer.util.HibernateUtil.<clinit>(HibernateUtil.java:7)
	... 2 more
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:105)
	... 12 more
Caused by: java.lang.NoClassDefFoundError: javassist/util/proxy/MethodFilter
	at org.hibernate.bytecode.javassist.BytecodeProviderImpl.getProxyFactoryFactory(BytecodeProviderImpl.java:49)
	at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactoryInternal(PojoEntityTuplizer.java:205)
	at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:183)
	at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:167)
	at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:77)
	... 17 more
Caused by: java.lang.ClassNotFoundException: javassist.util.proxy.MethodFilter
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	... 22 more
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics