Рекурсивно гидратируйте все связанные объекты в Propel

Есть ли простой способ рекурсивно гидратировать все связанные объекты при выполнении запроса?

Скажем, у меня есть следующие таблицы:

Song Composer Century 

Когда я делаю SongPeer::doSelectJoinAll() только связанные композиторы гидратируются, поэтому, если я тогда сделаю что-то вроде $song->getComposer()->getCentury() , будет выполнен новый запрос.

Я хочу выполнить только один запрос в БД, поэтому, когда я вызываю $song->getComposer()->getCentury() в цикле для всех объектов моих песен, он не заканчивается в n дополнительных запросах.

Надеюсь, я понятен 🙂

благодаря

Related of "Рекурсивно гидратируйте все связанные объекты в Propel"

Вы используете Propel 1.2? Тот с креолом?

Если это так, попробуйте реализовать собственный doSelectJoinAll на SongPeer, чтобы вручную добавить соединение на другую таблицу (например, век).

Если вы используете последнюю версию, вам просто нужно joinWith таблицу в вашем запросе:

 <?php $song = SongQuery::create() ->joinWith('Song.Composer') ->joinWith('Composer.Century'); $century = $song->getComposer()->getCentury();