在Spring中,我们如何确保某些操作始终一起执行。如果其中任何一个失败,则需要回滚整个事务。我进行了很多搜索,发现@Transactional(propagation = Propagation.REQUIRED)
注释和TransactionTemplate.execute()
方法与我的问题很接近。请澄清和帮助。
最佳答案
@Transactional和TransactionTemplate都确保原子性。 @Transactional用于声明式事务管理,TransactionTemplate用于程序性事务管理。您应该选择一个。
事务传播的思想仅适用于声明性事务管理,并且在以多种方法执行事务时定义了事务行为。请注意,Propagation.REQUIRED是Transactional.propagation的默认设置。这意味着支持当前事务(即,如果已在调用方法中启动了事务),或者如果不存在则创建一个新事务。