Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Doctrine i join, Bez LAZY LOAD
Fluke
post 28.08.2013, 16:17:11
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 20.09.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witam,

Mam problem dotyczący ładowania innych obiektów powiązanych ze sobą. Czy w doctrine jest taka możliwość, żeby przypisywał od razu do obiektu powiązane obiekty ?
Sytuacja jest taka, że gdy chcę wybrać 30 rekordów i potrzebuję mieć dane z relacji to wykonuje się SELECT główny a po drodze wykonuje kolejne SELECT`y do tabel powiązanych relacją.

Temat do zamknięcia...
Głowiłem się pół dnia a po napisaniu tematu nagle mnie olśniło...
Rozwiązanie jest proste,
do queryBuildera w select wpisać aliasy tabel które nas interesują...

Podam przykład

  1. $quer = $this->getDoctrine()
  2. ->getRepository('Product')
  3. ->createQueryBuilder('p')
  4. ->select('p, c') //tutaj trzeba dodać jeszcze c aby od razu przypisywał obiekty. Bez tego aliasu, dostęp do obiektu category będzie wykonane LAZY LOAD
  5. ->join('p.category', 'c');
Go to the top of the page
+Quote Post
cadavre
post 4.09.2013, 08:05:28
Post #2





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


Pierwszy akapit odpowiada na Twoje pytanie:
http://www.doctrine-project.org/blog/doctr...zy-loading.html

Poza tym można wybrać inny fetch mode aniżeli Lazy Loading:
http://docs.doctrine-project.org/en/2.1/re...tch-mode-in-dql

Eager Loading robi to o co pytasz. : )


--------------------
Silesian PHP User Group - www.spug.pl
Symfony2, OAuth2, budowanie API - masz pytania? Pisz!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 10.05.2024 - 16:39