org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not

来源:互联网 发布:卡五星麻将app源码 编辑:程序博客网 时间:2024/05/17 21:59

first of all if you want to use getcurrentSession() method you need to add these properties to HibernateProperties:
<prop key="hibernate.current_session_context_class">thread</prop>
<prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</prop>
 

添加后如下:

[xhtml] view plaincopy
  1. <bean id="sessionFactory"  
  2.     class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  3.     <property name="dataSource" ref="dataSource"></property>  
  4.     <property name="configurationClass">  
  5.         <value>org.hibernate.cfg.AnnotationConfiguration</value>  
  6.     </property>  
  7.     <property name="hibernateProperties">  
  8.         <props>  
  9.             <prop key="hibernate.dialect">  
  10.                 org.hibernate.dialect.Oracle9Dialect  
  11.             </prop>  
  12.             <prop key="hibernate.show_sql">true</prop>  
  13.             <prop key="hibernate.current_session_context_class">thread</prop>  
  14.             <prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</prop>  
  15.         </props>  
  16.     </property>  
  17.     <property name="mappingResources">  
  18.         <list>  
  19.             Log.hbm.xml</value>  
  20.         </list>  
  21.     </property>  
  22. </bean>  

 


second thing is from the exception, Hibernate3 doesn't allow you to run queries without starting a transaction. you have to add this to your init method before running the query:
sessionFactory.getCurrentSession().beginTransactio n();
and of course commit it in the end of your unit of work.