2013-10-10 43 views
3

我们有一种情况,在我们的代码中的某一点,我们将某些对象看作是分离的,但我们并没有明确地将对象自己分开。 SQLAlchemy的哪些方法/操作会导致对象分离?也许关闭会议或类似的东西?什么会从SQLAlchemy会话中隐式分离对象?

注意:我已经阅读了SQLAlchemy文档,它涵盖了将对象重新附加到会话中,但相对于实际上隐式分离实例的相对更少。

回答

0

我想主要的是如果你要“回滚”一个会话。作为the docs say

对象,其最初在未决状态时,它们被添加到 会话交易的生命周期内被清除,则对应于它们的INSERT语句 被回滚。其属性的状态 保持不变。

3

session.close()将分离所有对象。如上所述的回滚将分离那些在回滚事务中被插入的对象。