我是 Python 和 SQLAlchemy 的新手,所以基本上我从:
session = Session()
session.query(SOMETHING_HERE).filter()
到
session = Session()
nested_session = session.begin_nested()
nested_session.query(SOMETHING_HERE).filter()
为了使用SAVEPOINTS。但我收到错误:
<块引用>AttributeError: 'SessionTransaction' 对象没有属性 'query'
我对文档进行了深入研究,如下所示:
https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.SessionTransaction
https://docs.sqlalchemy.org/en/13/orm/session_transaction.html
但这对我没有帮助。
问题:我是否可以使用 begin_nested 来运行带有过滤器的查询,或者我需要更改方法?这是版本问题吗(例如 sql alchemy)?
答案 0 :(得分:2)
这最初是作为评论发布的。
您不需要将 session.begin_nested()
的结果重新分配给任何东西,您只需执行以下操作:session.begin_nested()
然后继续 session.query(SOMETHING_HERE).filter()
此断言的参考:https://docs.sqlalchemy.org/en/13/orm/session_transaction.html#using-savepoint