Я использую sqlalchemy.У меня есть следующие модели, когда я запрашиваю родителя с объединенной загрузкой, я получаю детей и собак.Это точно.
Parent
Children
Dogs
Когда я запрашиваю ребенка, я и я прошу присоединиться к родителю, я не хочу, чтобы родительский элемент также получал собак.Но, похоже, именно это и происходит. Нет
Child:
Parent:
Dogs (i do not want this to be joined...its an unnecessary query. I just want the top level parent)
Я хочу, чтобы мой запрос был эффективным, поэтому я не хочу ненужных объединений.Есть ли флаг, который мне не хватает в моей модели, которая будет делать это.Основная причина, почему я хочу это, заключается в том, что я предполагаю, что сэкономлю время на запрос.
class Parent():
__tablename__ = 'parent'
__table_args__ = {'schema': 'test'}
id = Column(Integer, primary_key=True)
children = relationship(Child, lazy='joined', passive_deletes='all')
dogs = relationship(Dogs, lazy='joined', passive_deletes='all')
class Child():
__tablename__ = 'child'
__table_args__ = {'schema': 'test'}
id = Column(Integer, primary_key=True)
parent_id = Column(Integer, ForeignKey('test.parent.id', ondelete="CASCADE"), nullable=False)
parent = relationship('Parent', back_populates='children')
Так я делаю свои запросы
session.query(Child).options(joinedload(Child.parent)).all()