我有一个应用程序,它有许多不同类型的对象,每个对象都将自己持久化回数据库。到目前为止,这在没有交易的情况下运行良好,我不想疯狂添加它们。但是偶尔需要在整个对象集合开始更新之前启动事务,以确保只有在集合中的所有对象都成功时才真正更新数据库。
例如,假设我有一组苹果。向集合发出命令以更新所有苹果。[事务开始应该在这里] 每个苹果执行代码来更新自己。[事务提交/回滚应该在这里发生]。
我遇到的问题是每个更新现在都是原子的(没有明确地包装在事务中)。我可以将一个 id 传递给每个“苹果”,以识别已隐藏在某种缓存中的事务,但是存在缓存在更新过程中失效并导致不必要问题的风险。
那么最好的方法是什么?