Hi All, I have also created a post for this question on StackOverflow: http://stackoverflow.com/questions/3863508/joinedload-eager-loading-whole-sub-graphs-in-sqlalchemy
Let's say I have a Task object which can be dependent on other Tasks. Is there a way to sensibly eager/joinedload all of a given set of task's subtasks? Example code: class Task(DeclarativeBase): __tablename__ = 'task' task_id = Column(Integer, primary_key=True) name = Column(String, unique=True) def add_dependencies(self, *tasks): for task in tasks: TaskDependency(dependent=self, dependency=task) return self @property def dependencies(self): return [x.dependency for x in self.dependency_edges] @dependencies.setter def dependencies(self, what): "Note: adds dependencies, doesn't remove them" self.add_dependencies(*what) @property def dependents(self): return [x.dependent for x in self.dependent_edges] class TaskDependency(DeclarativeBase): __tablename__ = 'task_dependency' dependent_id = Column(Integer, ForeignKey(Task.task_id), primary_key=True) dependency_id = Column(Integer, ForeignKey(Task.task_id), primary_key=True) dependent = relationship(Task, primaryjoin=dependent_id == Task.task_id, backref='dependent_edges') dependency = relationship(Task, primaryjoin=dependency_id == Task.task_id, backref='dependency_edges') def example_task_maker(): make_cheese = Task( name="MAKE_CHEESE", dependencies=[ Task(name="MILK_COWS", dependencies=[ Task(name="BUY_COWS") ]), ] ) def load_task() # How to eagerly load the whole task tree here? DBSession.query(Task).filter(name="MAKE_CHEESE").all() Thanks in advance, - Peter -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalch...@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.