orm - 尝试混合属于不同事务的对象

标签 orm ponyorm

pony.orm.core.TransactionError:尝试混合属于不同事务的对象

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

有什么想法吗?

最佳答案

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

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)

每个数据库 session 应该只处理在这个数据库 session 中检索到的对象。如果您需要在数据库 session 之间存储一些信息,您可以存储对象的 id 值而不是对象本身。您也可以在一个 db_session 中挑选对象,然后在另一个 db_session 中取消挑选它们。

关于orm - 尝试混合属于不同事务的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42225518/

相关文章:

c# - 使用旧的 ado.net 实现通用存储库模式

java - 在 Hibernate 中通过 ID 获取对象

java - JPA:如何具有相同实体类型的一对多关系

javax.persistence.PersistenceException : No Persistence provider for EntityManager named customerManager

python - 使用ponyorm检查PrimaryKey是否存在

ponyorm - Pony ORM 使用哪些库?

typescript - 如何使用包含模型中的属性来创建 where 条件?

清除定义一对多关系的集合时,PonyORM 孤立项

Python Pony ORM 一次插入多个值

python - 使用 Pony ORM 进行分页