2017-02-14 79 views
2

pony.orm.core.TransactionError: An attempt to mix objects belonging to different transactions的混合屬於不同的交易

我知道這個錯誤是描述對象的嘗試,我就是不明白,爲什麼它的發生。我搜索谷歌,文檔,其他SO職位,並沒有發現任何東西。

任何想法?

回答

3

這個錯誤發生,如果有人試圖互連連桿屬於兩個不同的數據庫會話的身份映射兩個對象:

from pony.orm.examples.university1 import * 

populate_database() 

with db_session: 
    g = Group[101] 

with db_session: 
    s = Student[4] 
    s.group = g # or g.students.add(s) 

每個DB會話應該僅與該數據庫會話中檢索對象。如果您需要在db會話之間存儲一些信息,則可以存儲對象的值id而不是對象本身。也可以在一個db_session中醃製物體,然後在另一個db_session中取出它們。