我有一个查询
(session.query(Root).with_polymorphic('*')
.outerjoin(Subclass.related1).options(contains_eager(Subclass.related1)))
Run Code Online (Sandbox Code Playgroud)
事情到目前为止工作.
我想要急切加载Related1.related2,我试过这个:
(session.query(Root).with_polymorphic('*')
.outerjoin(Subclass.related1).options(contains_eager(Subclass.related1))
.outerjoin(Related1.related2).options(contains_eager(Related1.related2)))
Run Code Online (Sandbox Code Playgroud)
但它不起作用:
sqlalchemy.exc.ArgumentError:在此Query中指定的任何实体上找不到属性"related2".请注意,必须指定从根(Mapper | Root | root)到目标实体的完整路径.
鉴于related1通过子类与根实体相关,我没有看到如何指定完整路径.
我也试过了
(session.query(Root).with_polymorphic('*')
.outerjoin(Subclass.related1).options(contains_eager(Subclass.related1))
.outerjoin(Related1.related2).options(contains_eager('related1.related2')))
Run Code Online (Sandbox Code Playgroud)
可以预见的是失败了
sqlalchemy.exc.ArgumentError:在此Query中的映射实体Mapper | Root | root上找不到名为'related1'的属性.
如何指定间接相关实体的完整路径contains_eager()?
zzz*_*eek 11
contains_eager需要查询所知实体的完整路径:
contains_eager(Subclass.related1, Related1.related2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1220 次 |
| 最近记录: |