quarz定时任务报no session 错误

工作中遇到这样一个问题,定时任务执行时总是报no session问题,根据no session 百度,原因是当前线程没有session,spring+hibernate框架,hibernate和spring会为每一个线程绑定一个session,解决方法大致有两个:

(1)hibernate关闭延迟加载 http://blog.csdn.net/luckyzhoustar/article/details/47829947

(2)在spring配置文件中配置 OpenSessionInViewFilter

 http://blog.csdn.net/kiss_fly/article/details/50509504

但是项目中都配置了,还是报no session 问题,最后找出原因:

数据库是读写分离,service 和dao是单例,service 在查询出来一个对象以后,再对这个对象进行更改,写入数据库,需要的是写的操作,当前session还没有关闭,那么,这个时候,再去写入数据库,并没有权限,就会报错误,但是报的错误体现出来的就是no session的错误,而不是sql语句错误。

方法:将service中的查询操作和更新操作分开写在quarz的操作方法中,而不是写一个service完成查询和更新操作。

 

参考:

http://blog.csdn.net/lonelyroamer/article/details/7949969

http://blog.csdn.net/hongshan50/article/details/7100667

http://blog.csdn.net/jiangjiajian2008/article/details/51714979

 

 

转载于:https://my.oschina.net/luleilei516/blog/918693

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值