当急切加载子关系时,如何只加载父模型的几列:
如果我只需要的话这有效title
的栏目chapters
model:
session.query(Book)\
.options(joinedload('chapters').load_only('title'))
但这会引发错误:
session.query(Book.author)\
.options(joinedload('chapters').load_only('title'))
查询仅具有基于表达式的实体 - 找不到名为的属性
‘章节’。
换句话说,我想要 ORM 语法中的 SQL:
SELECT
books.author,
chapters.title,
FROM
books JOIN chapters ON book.id = chapters.book_id
错误消息表明您只选择了Book.author
,而不是实例Book
。哪里chapters
如果它返回的只是一个字符串列表(对于author
).
你可以这样做:
session.query(Book.author, Chapter.title).select_from(Book).join(Book.chapters)
or
session.query(Book).options(load_only("author"), joinedload("chapters").load_only("title"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)