Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SF][SF2][Symfony2]Pobieranie wartości przez sql z relacji ManyToMany
Crash89
post
Post #1





Grupa: Zarejestrowani
Postów: 191
Pomógł: 7
Dołączył: 3.04.2013

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


Mam taki problem chciałbym pobrać wartości z relacji A selekcjonując ją warunkiem z relacji B. Relacje są połączone relacją Wiele do Wiele. Niestety w symfony nie można tutaj użyć tabeli pośredniej, gdyż DQL korzysta tylko z plików klas. Generalnie zapytanie, gdy istnieje klasa pośrednia działa, ale po zmianie tego na relacje ManyToMany w klasie Entity nie są pobierane odpowiednie rekordy.

Otóż, jeśli któryś z obiektów z relacji B spełnia warunek, pobierane są wszystkie obiekty z relacji A, a nie tylko te, które spełniają warunek.
Zapytanie wygląda mniej więcej tak:

  1. SELECT a.id FROM Bundle:a a JOIN Bundle:b b WHERE b.column1 < :pam1 AND b.column2 > :pam2


Gdy istniała klasa tebeli pośredniej, wszystko działało. (W entity łączyłem się z relacją pośrednią przez ManyToOne) Teraz po zmianie na ManyToMany, gdzie tabela pośrednia istnieje tylko w bazie danych, występuje powyższy błąd. Proszę, żeby ktoś napisał jak to poprawnie rozwiązać.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
prz3kus
post
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 30
Dołączył: 22.01.2007

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


jakiej ty wersji symfony uzywasz?

Przecież co z tego że masz 2 klasy, jak zrobisz dobrego joina powstana w bazie 3 tabelki i z pobieraniem danych nie ma najmniejszego problemu.
Go to the top of the page
+Quote Post
Crash89
post
Post #3





Grupa: Zarejestrowani
Postów: 191
Pomógł: 7
Dołączył: 3.04.2013

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


Problem rozwiązałem, zamiast AppBundle:b trzeba było użyć a.tablica_danych, które są zmapowane z inna tabelą.
Czyli:
  1. SELECT b.id FROM AppBundle:a a JOIN a.tablica_danych b WHERE warunek
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 21:46