【发布时间】:2013-10-11 02:44:53
【问题描述】:
我们有一种情况,在我们的代码中,我们看到某些对象是分离的,但我们自己并没有明确地分离这些对象。哪些 SQLAlchemy 方法/操作会导致对象分离?也许关闭一个会话或类似的东西?
注意:我已经阅读了 SQLAlchemy 文档,该文档确实涵盖了将对象重新附加到会话,但相对而言,实际上可以隐式分离实例的内容相对较少。
【问题讨论】:
标签: sqlalchemy
我们有一种情况,在我们的代码中,我们看到某些对象是分离的,但我们自己并没有明确地分离这些对象。哪些 SQLAlchemy 方法/操作会导致对象分离?也许关闭一个会话或类似的东西?
注意:我已经阅读了 SQLAlchemy 文档,该文档确实涵盖了将对象重新附加到会话,但相对而言,实际上可以隐式分离实例的内容相对较少。
【问题讨论】:
标签: sqlalchemy
session.close() 将分离所有对象。如前所述,回滚将分离那些在回滚事务中插入的对象。
【讨论】:
我猜主要是如果你要“回滚”一个会话。作为the docs say:
添加时最初处于待处理状态的对象 交易生命周期内的会话被删除, 对应于他们的 INSERT 语句被回滚。国家 它们的属性保持不变。
【讨论】: