在嵌套事务中,如果外部事务回滚,内部事务会回滚吗?

时间:2018-10-23 11:14:58

标签: ruby-on-rails

model1.rb

def method1
   Model1.transaction do
      model2_ref_obj = Model2.find(some_id)
      model2_ref_obj.method1
  end
end

model2.rb

def method1
   Model2.transaction do
   ## so some work
   self.save!
   end
end

model1的交易回滚时,内部交易也会回滚吗?

1 个答案:

答案 0 :(得分:0)

根据ActiveRecord Nested Transactions上的文档:

  

事务调用可以嵌套。默认情况下,这使嵌套事务块中的所有数据库语句成为父事务的一部分。

意味着如果父事务回滚,则嵌套事务也将回滚,因为它们是同一事务的一部分。

相关问题