org.hibernate.HibernateException: No Session found for current thread
2014-04-24 21:07
441 查看
第一次使用hibernate4,通过以前的配置写dao类不能spring封装,可以直接调用hibernate自己的API也就是getCurrentSession();
然后就会出现org.hibernate.HibernateException: No Session found for current thread报错,出现的具体原因我也不懂但解决办法就是:
第一步:applicationContext.xml
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="get*" read-only="true" propagation="REQUIRED"/>
<tx:method name="find*" read-only="true" propagation="REQUIRED"/>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="remove*" propagation="REQUIRED"/>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<aop:config proxy-target-class="true">
<aop:advisor advice-ref="txAdvice" pointcut="execution(* pmk.baseClass.impl.BaseService.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut="execution(* pmk.manage.book.service.impl.*.*(..))" />
</aop:config>
第二步:
在service类每个方法前加上@Transactional
注意:继承的service必须在aop配置写入baseService类,而且baseService也需要声明@Transactional
然后就会出现org.hibernate.HibernateException: No Session found for current thread报错,出现的具体原因我也不懂但解决办法就是:
第一步:applicationContext.xml
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="get*" read-only="true" propagation="REQUIRED"/>
<tx:method name="find*" read-only="true" propagation="REQUIRED"/>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="remove*" propagation="REQUIRED"/>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<aop:config proxy-target-class="true">
<aop:advisor advice-ref="txAdvice" pointcut="execution(* pmk.baseClass.impl.BaseService.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut="execution(* pmk.manage.book.service.impl.*.*(..))" />
</aop:config>
第二步:
在service类每个方法前加上@Transactional
注意:继承的service必须在aop配置写入baseService类,而且baseService也需要声明@Transactional
相关文章推荐
- SpringMVC3+Hibernate4问题:org.hibernate.HibernateException: No Session found for current thread
- 在hibernate4中出现org.hibernate.HibernateException: No Session found for current thread
- org.hibernate.HibernateException: No Session found for current thread
- org.hibernate.HibernateException: No Session found for current thread
- org.hibernate.HibernateException: No Session found for current thread
- nested exception is org.hibernate.HibernateException: No Session found for current thread
- 关于异常: org.hibernate.HibernateException: No Session found for current thread
- org.hibernate.HibernateException: No Session found for current thread
- org.hibernate.HibernateException: No Session found for current thread
- org.hibernate.HibernateException: No Session found for current thread
- org.hibernate.HibernateException: No Session found for current thread
- org.hibernate.HibernateException: No Session found for current thread的解决办法
- 分析 org.hibernate.HibernateException: No Session found for current thread
- org.hibernate.HibernateException: No Session found for current thread
- org.hibernate.HibernateException: No Session found for current thread
- org.hibernate.HibernateException: No Session found for current thread
- Bug库____org.hibernate.HibernateException: No Session found for current thread
- org.hibernate.HibernateException: No Session found for current thread
- org.hibernate.HibernateException No Session found for current thread
- Exception:No Session found for current thread