有没有办法在Spring中访问当前事务?我的目标是在事务启动时向事务添加一些信息,并在同一事务中的所有方法调用中使用该信息。
以下是EJB的解决方案:How can i attach data to a JTA transaction? (or uniquely identify it)我正在寻找与spring相同的解决方案。
答案 0 :(得分:0)
您可以使用ThreadLocal
将数据附加到线程,然后使用TransactionSynchronizationManager
清除ThreadLocal
,从而有效地创建事务范围变量:
TransactionSynchronizationManager.registerSynchronization(
new TransactionSynchronizationAdapter() {
@Override
public void afterCompletion() {
... clear the ThreadLocal ...
}
}
);