2013-12-09 18 views
5

Ich habe 2 Tabellen/Einheiten mit keine Zuordnung. Ich kann für Kreuz gehen verbindet in JPAJPA - Links Join 2 Tabellen ohne Zuordnung

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

Wie kann ich eine links beitreten durchführen?

Ich möchte alle Werte von A und füllen sie mit B-Werten, wo möglich und NULL verlassen, wo es keine B. ist

funktioniert nicht:

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

Pfad erwartet für beitreten!

ungültiger Pfad: ‚b.col1‘

Antwort

-3

Dies ist möglich mit JPA mit folgenden Abfrage:

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

Das JOIN nicht das gleiche wie ein LEFT ist. Angenommen, Sie haben b.col1 = 3 und no a.col1 = 3. Ihre Abfrage wird diese Zeile nicht zurückgeben, aber ein LINKER JOIN wird sie zurückgeben. –

4

Sie können das nicht in JPA, solange es zwischen den Entitäten keine Beziehung.

Lösungen:

  1. Verwenden Native Queries.
  2. Fügen Sie eine Beziehung zwischen ihnen (schließlich eine indirekte faule) hinzu. Mit indirekt meine ich etwas wie: A kennt PseudoEntity, PseudoEntity kennt B (aber der Beziehungsinhaber ist Entität B), B kennt PseudoEntity.