【发布时间】:2014-04-06 20:02:14
【问题描述】:
说我愿意:
with my_connection:
o.first_call()
my_connection 的 __exit__ 方法要求回滚的地方
和o.first_call 在其执行中调用j.second_call,它本身调用z.third_call。假设z.third_call 成功地将一条记录插入到数据库中,j.second_call 也成功插入了一条记录,但o.first_call 出现了问题。我会回滚到我第一次进入 my_connection 上下文之前的状态,还是会回滚到 o.first_call 和 j.second_call 之间的状态?
编辑:明确地说,我希望整个事情都可以回滚到我打电话给o.first_call之前。
EDIT2:我希望如果我可以在__enter__ 中做一些魔术,某种上下文可以说,看看所谓的任何东西都是一笔大交易。
【问题讨论】: