【发布时间】:2013-02-28 16:50:37
【问题描述】:
我有一个使用 Spring 的事务模板以编程方式启动事务的方法。
Void methodA() {
TransactionTmeplate..........
Setpropgation to requires new....
/// do my stuff in trasaction
}
因此,如果我有另一个类调用此方法,它会创建一个事务,正如我所期望的那样。但是如果从同一个调用线程再次进入这个方法会发生什么。是否创建了另一个事务?
例子:
MethodCaller -> methodA (transaction created) -> methodD -> methodA(??)
接下来:
如果类是@autowired,考虑到一个实例存在,两个调用线程是否会共享同一个事务?
我会假设没有,因为他们在该方法的堆栈上有自己的条目。
【问题讨论】:
-
什么样的逻辑可以完成这样的事情?交易应该是一个单一的逻辑部分。我会说这有代码味道
-
是的,我同意......但我试图遵循一些代码和行为......看起来像这样......因为我再次写它......我想确定交易和它们是如何工作的......有什么可能什么不是......
标签: java spring transactions