我对 Python 和 SQLAlchemy 还很陌生,所以基本上我的改变是:
session = Session()
session.query(SOMETHING_HERE).filter()
至
session = Session()
nested_session = session.begin_nested()
nested_session.query(SOMETHING_HERE).filter()
为了使用保存点。但我收到错误:
AttributeError: 'SessionTransaction' object has no attribute '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)?
最佳答案
这最初是作为评论发布的。
您不需要将 session.begin_nested()
的结果重新分配给任何东西,您只需执行:session.begin_nested()
,然后继续session.query(SOMETHING_HERE).filter()
此断言引用:https://docs.sqlalchemy.org/en/13/orm/session_transaction.html#using-savepoint
关于python - SQLAlchemy SessionTransaction 有查询属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67275999/