2013-10-10 74 views
3

我們有一種情況,在我們的代碼中的某一點,我們將某些對象看作是分離的,但我們並沒有明確地將對象自己分開。 SQLAlchemy的哪些方法/操作會導致對象分離?也許關閉會議或類似的東西?什麼會從SQLAlchemy會話中隱式分離對象?

注意:我已經閱讀了SQLAlchemy文檔,它涵蓋了將對象重新附加到會話中,但相對於實際上隱式分離實例的相對更少。

回答

0

我想主要的是如果你要「回滾」一個會話。作爲the docs say

對象,其最初在未決狀態時,它們被添加到 會話交易的生命週期內被清除,則對應於它們的INSERT語句 被回滾。其屬性的狀態 保持不變。

3

session.close()將分離所有對象。如上所述的回滾將分離那些在回滾事務中被插入的對象。