Spring注释@Transactional用于多个线程

时间:2017-08-31 04:15:26

标签: java spring transactional

有一个使用@Transacational注释的服务方法。在这个方法中,我们执行一些删除操作,之后我们想要生成一个新线程并删除更多的条目。如果后者有任何例外。 DB将进入不一致状态,因为很少有条目被删除。我可以将事务传播到Thread。我在这上面读了一些article但是没有成功。

1 个答案:

答案 0 :(得分:0)

spring中的事务状态以线程本地方式存储。 org.springframework.transaction.support.TransactionSynchronizationManager类。因此,从原始删除线程设置的与事务相关的线程本地值无法访问其他生成的删除线程。

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