2013-12-09 9 views
5

Mam 2 tabele/podmioty z bez stowarzyszenia. mogę iść do krzyża łączy w JPAJPA - po lewej dołącz 2 tabele bez asocjacji

FROM A as a, B as b WHERE b.col1=a.col1 

Jak mogę wykonać lewej przyłączyć?

Chcę wszystkie wartości z i wypełnić je z wartościami B, gdzie to możliwe i pozostawiają NULL, gdy nie ma B.

nie działa:

FROM A as a LEFT JOIN B as b WHERE b.col1=a.col1 

Path oczekiwany na dołączenie!

Nieprawidłowa ścieżka: „b.col1”

Odpowiedz

-3

Jest to możliwe z JPA z następującym zapytaniem:

FROM A as a, B as b WHERE b.col1=a.col1 OR b.col1 IS NULL 
+1

To nie jest taka sama jak LEFT JOIN. Załóżmy, że masz b.col1 = 3 i bez a.col1 = 3. Twoje zapytanie nie zwróci tego wiersza, ale LEWY JOIN zwróci go. –

4

Nie można tego zrobić w WZP, tak długo jak nie ma żadnego związku pomiędzy podmiotami.

Solutions:

  1. Stosować Native zapytaniami.
  2. Dodaj związek między nimi (ewentualnie pośredni leniwy). Z pośrednim mam na myśli coś takiego: A zna PseudoEntity, PseudoEntity zna B (ale właścicielem relacji jest podmiot B), B zna PseudoEntity.