2017-08-31 226 views
0

有一种服务方法,用@Transacational注释。在这个方法中,我们执行一些删除操作,然后我们想要产生一个新线程并删除一些更多的条目。如果后面有一个例外。数据库将进入不一致的状态,因为很少有条目被删除。我可以将事务传播给Thread吗?我读了一些article,但没能成功。弹簧注释@Transactional多线程

+0

不完全是这 – Raju

+0

我已经分享了一篇文章,他们提到了解决方案(即使我不能成功)。但在发布后,他们说这是不可能的。 – Raju

回答

0

春季的交易状态以线程本地方式存储。 org.springframework.transaction.support.TransactionSynchronizationManager类。因此,从原始删除线程设置的与事务相关的线程本地值不能访问其他衍生删除线程。

此外,您的线程必须由Spring进行管理,以便您的@Transactional注释有效。您需要从Spring ThreadPoolTask​​Executor生成线程。