我正在研究Spring提供的事务管理,但是出于好奇,我想知道我们的事务管理是否由Database提供,而不是为什么我们要使用JTA,Spring等提供的跨国管理。
答案 0 :(得分:0)
实际上,您可以完全避免在代码中使用事务性注释(基本上应该坚持这种方法)。因为每个事务都会隐式地提交到每个成功的数据库调用上。
但是有时,您必须在一次交易中进行多个操作(查询):从account
表中提取资金并从store
表中发货。在这种情况下,您无法避免事务管理:
class Processor {
...
@Transactional
void purchase(){
accountService.withdraw(200);
storeService.ship("goods")
}
}