我在想TransactionTemplate
究竟是什么setPropagationBehavior
。谁向谁传播什么?我认为这是有据可查的,但我并不了解这个PropagationBehavior
的基本概念。Spring TransactionTemplate setPropagationBehavior
默认为PROPAGATION_REQUIRED
,那么这是什么意思?模板是否报告(传播)失败,反之亦然?
有人可以请一个基本的方式解释这里发生了什么,我熟悉数据库术语和交易功能,ACID等。
非常感谢。
好吧,如果新的线程开始新的交易,我不需要关心这个功能吗?我没有任何代码在做doInTransaction的多个调用。执行命令阻塞直到事务完成,不是吗? –
excecute方法执行其回调的doInTransaction方法,然后提交或回滚事务,然后返回。 TransactionTemplate不处理可能由回调启动的线程。这些在事务上下文之外执行。 –
交易划分是服务方式。这意味着交易的边界在这个工作完成的方法中。 Transation eather提交或在出现异常时回滚。这部分工作中的一切都不在这个事务上下文中。 – Eduard