【问题标题】:An attempt to mix objects belonging to different transactions尝试混合属于不同事务的对象
【发布时间】:2017-07-02 16:55:50
【问题描述】:

pony.orm.core.TransactionError: An attempt to mix objects belonging to different transactions

我知道这个错误是描述性的,但我无法弄清楚它为什么会发生。我搜索了谷歌、文档、其他 SO 帖子,但一无所获。

有什么想法吗?

【问题讨论】:

    标签: orm ponyorm


    【解决方案1】:

    如果有人试图互连属于两个不同数据库会话的身份映射的两个对象,则会出现此错误:

    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 会话中检索到的对象一起使用。如果需要在 db 会话之间存储一些信息,可以存储对象的 id 值而不是对象本身。您也可以在一个 db_session 中腌制对象,然后在另一个 db_session 中取消腌制它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-28
      • 1970-01-01
      • 1970-01-01
      • 2020-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多