0
我不确定我是否理解SQLAlchemy的会话在其生命周期过程中如何跟踪对象。我想我被可能的误报困惑了。SQLAlchemy中的分离对象和过期对象有什么区别?
有人能解释一下,如果我这样做与具有expired_on_commit
设置为默认True
一个scoped_session会发生什么:
box = session.query(User).filter(Box.box_id==3, Box.color==u'red').one()
box.color = u'blue'
session.commit() # 1
box.color = u'yellow'
session.commit() # 2
是session
还是第一次提交(#1)后跟踪box
? box
现在是否过期?它是否分离?
如果是这样,为什么第二次提交仍将我的更改推送到数据库?为什么它会成功地完成超过400次,然后一次,跳过一个节拍(通过默默无闻地推动它们)。
没有办法回答你最后的问题,因为你没有提供代码来重现问题。请[编辑]包含一个最小的可运行问题示例。 – davidism 2014-10-16 23:02:07