第一次Hibernate之旅经验总结
1.错误提示:
Exception in thread "main" java.lang.NoClassDefFoundError:?javax/persistence/EntityListeners
?at org.hibernate.HibernateException:?No CurrentSessionContext configured!
?at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:683)
?at StudentTest.main(StudentTest.java:18)
错误原因:从3.0.1版本开始,Hibernate增加了 SessionFactory.getCurrentSession()方法。一开始,它假定了采用 JTA事务, JTA事务定义了当前session的范围和上下文(scope and context)。
错误主要原因是在hibernate.cfg.xml文件中忘记进行了如下设置:hibernate.current_session_context_class
如果是在web容器中运行hibernate,则在hibernate.cfg.xml中加入这句话:
<propertyname="hibernate.current_session_context_class">jta</property>
如果是在一个单独的需要进行JDBC连接的javaapplication中运行hibernate,则这样设置:
<propertyname="hibernate.current_session_context_class">thread</property>