解决 No Hibernate Session bound to thread, and configuration does not allow。

错误原因: hibernate session未绑定到当前线程,或者更一般的说service层未增强事物控制。

解决办法:

1. 第一个可能原因,请注意匹配你的service方法开头,其他用 * 通配。


2. 报这个错误一般你的框架是SSH , 及 springmvc spirng hibernate,

引用:http://blog.csdn.net/z69183787/article/details/37819831

Spring容器优先加载由ServletContextListener(对应applicationContext.xml)产生的父容器,而SpringMVC(对应mvc_dispatcher_servlet.xml)产生的是子容器。

子容器Controller进行扫描装配时装配的@Service注解的实例是没有经过事务加强处理,即没有事务处理能力的Service,

而父容器进行初始化的Service是保证事务的增强处理能力的。如果不在子容器中将Service exclude掉,此时得到的将是原样的无事务处理能力的Service。

所以为了让ServletContextListener加载的父容器对service进行事物加强,我们在用springmvc包扫描时排除service即可

ServletContextListener加载的父容器 application-context.xml


org.springframework.web.servlet.DispatcherServlet 加载的子容器: application-mvc.xml


最后说一句: 第二中原因我们完全可以利用包结构避免,controller控制前单独在一个包下,包扫描时只扫描这个包下的即可


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值