ssh框架中后台线程Hibernate lazy 方案

在ssh框架中经常会用到多线程,线程中需要调用Service层进行业务处理,而为了提升性能我们都会选择使用Hibernate 的延迟加载模式。当在线程中的调用持久化的某个实体对象的延迟加载加载属性时就会抛出Hibernate的延迟加载异常,主要原因是之前的session已经关闭了。于是乎,我就想到了Spring中的定时器,定时器也可以理解为线程,我们在定时器注入一个执行具体任务实例。该实例可以视为Services,在这个Services里我们还可以注入其他的Services。这样我的问题有了解决办法。

现有 

线程 Thread_X 该线程交给Spring管理

ServiceA 该Service只有 一个 work 方法,同样交给Spring管理

在ServiceA的work方法中处理全部业务逻辑。

简单的说,就是在线程中注入一个类似代理的Services,具体的业务逻辑都交给代理去做,然后把事务交给Spring来控制,事务配到Service层,这样线程中就只调用了代理,具体的业务逻辑都在代理那实现的,而且事务又都配置Service层,这样就不会出现由于session关闭引起Hibernate延迟加载的问题。

小弟不才,这种解决方案不知道算不算最笨的,如果您有更为优雅高效的方案,望告知!

转载于:https://my.oschina.net/txijin/blog/27683

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值