python
runtime_error
ai_generated
true
sqlalchemy.exc.InvalidRequestError: Could not evaluate current criteria in Python. Specify 'fetch' or False for the synchronize_session parameter.
ID: python/sqlalchemy-unhashable-condition
80%Fix Rate
85%Confidence
0Evidence
2024-11-12First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 3.x | active | — | — | — |
Root Cause
Using a bulk update/delete with a complex expression that SQLAlchemy cannot evaluate in the session, especially with certain database-specific functions.
generic中文
在批量更新/删除中使用复杂表达式,SQLAlchemy 无法在会话中评估,尤其使用特定数据库函数时。
Workarounds
-
95% success
session.query(User).filter(User.age > 30).update({'active': False}, synchronize_session=False) -
90% success
session.query(User).filter(User.age > 30).update({'active': False}, synchronize_session='fetch')
Dead Ends
Common approaches that don't work:
-
50% fail
Default is 'auto' which may still fail for complex criteria.
-
30% fail
May bypass ORM features but not always desired.