2012-03-28 7 views
4

Ich brauche eine JPQL für die Abfrage MySQL:Wie kann ich innere Verknüpfung einer Unterabfrage in JPQL

SELECT * 
FROM table1 t1 
INNER JOIN table2 t2 
    ON t1.id = t2.table1.id 
INNER JOIN (SELECT * FROM table1 t3 
      INNER JOIN table2 t4 ON t3.id = t4.table1.id 
      WHERE t3.name = 'xxx') subTable 
    ON t1.number = subTable.number 
WHERE t1.number = '5' 
    AND id = '3' 
+0

Ohne Informationen über die Struktur Ihrer Entitäten ist es ziemlich schwierig, etwas über die notwendige JPQL-Abfrage zu sagen. – magomi

+0

Beziehung zwischen Tabelle1 und Tabelle2 ist Tabelle2 haben ein Feld der ID von Tabelle1. Dann sind für table1, table2, die zu anderen Tabellen gehören (zB: table3) nur wenige Spalten vorhanden. Hier müssen wir table3 nicht berücksichtigen, da wir inner toil1 und table2 durch die Spalten in diesen beiden Tabellen selbst – Prince

+0

Ich spreche nicht von der Struktur Ihrer Datenbank. Um über die JPQL-Abfrage zu informieren, muss ich wissen, wie Ihre Entitätsobjekte entworfen werden und wie die Zuordnungen zwischen den Entitäten implementiert werden. – magomi

Antwort

2

Ihre Anfrage ganz pathologisch scheint, vielleicht sagen, was zur Folge haben Sie abfragen wollen, und geben Sie Ihre Objektmodell.

Im Allgemeinen unterstützt JPQL keine Unterauswahlen in der from-Klausel, sodass Ihre Abfrage nicht direkt in JPQL konvertiert werden kann.

Sie können es immer nur als JPA-Native-SQL-Abfrage ausführen, da Sie mit SQL vertraut zu sein scheinen als JPQL.

Verwandte Themen