Ciekawym efektem ubocznym metod getXs() oraz getZsJoinX() jest to, że jeden obiekt może dać dostęp do całej bazy danych.
Umieśćmy w bazie danych książki podzielone na rozdziały, które z kolei zawierają zadania. Otrzymamy trzy tabele: ksiazka, rozdzial oraz zadanie. Relacją 1:n łączymy tabele ksiazka i rozdzial (każda książka zawiera wiele rozdziałów) oraz rozdzial i zadanie (każdy rozdział zawiera wiele zadań). Propel wygeneruje klasy:
Ksiazka metoda getRozdzials() Rozdzial metoda getZadanies() Zadanie
Jeśli w bazie danych znajduje się jeden rekord o identyfikatorze 1 (zbiór zadań z programowania w języku C++), to wywołanie:
$ksiazka = KsiazkaPeer::retrieveByPK(1);
zapewni dostęp do całej bazy danych. Podwójna pętla foreach wydrukuje całą książkę (wszystkie rozdziały i wszystkie zadania):
foreach ($ksiazka->getRozdzials() as $rozdzial) {
echo $rozdzial->getTytul();
foreach ($rozdzial->getZadanies() as $zadanie) {
echo $zadanie->getTekst();
}
}