Unterabfrage in SELECT-Klausel mit der JPA-Kriterien-API

9

Ich versuche, wie im Titel, eine Unterabfrage in SELECT-Klausel wie in diesem einfachen SQL einzufügen:

%Vor%

Das ist offensichtlich nur eine Scheinfrage, nur um meinen Standpunkt zu verdeutlichen. (Der Punkt wäre, die letzte Rechnung für jedes von der Abfrage zurückgegebene Element zu erhalten.)

Ich habe es versucht:

%Vor%

aber ich bekomme nur:

  

java.lang.IllegalStateException:   Unterabfrage kann nicht in SELECT-Klausel auftreten

Wie kann ich ein ähnliches Ergebnis erzielen?

    
lelmarir 11.01.2011, 20:33
quelle

4 Antworten

11

Es wird in JPA 2.1 und Hibernate 5.0 unterstützt. Sie mussten nur getSelection() zu dem Unterabfrageargument in multiselect der Hauptabfrage hinzufügen.

%Vor%

Sehen Sie sich dieses Arbeitsbeispiel an:

%Vor%     
daca11 15.09.2016, 15:37
quelle
6

JPA unterstützt keine Unterabfragen in der SELECT-Klausel.

Sie müssen entweder Ihre Abfrage ändern, um keine Sub-Abfrage in der SELECT-Klausel zu verwenden, mehrere Abfragen auszuführen oder eine native SQL-Abfrage zu verwenden.

    
James 12.01.2011 13:53
quelle
2

JPA unterstützt jetzt Unterabfragen in der SELECT-Klausel.

BEARBEITEN:
JPA 2.1 JPQL BNF unterstützt Unterabfragen in der SELECT-Klausel, auch wenn dies nicht erforderlich ist. Soweit ich weiß, unterstützt Eclipselink dies auch und Hibernate (getestet in 5.1).

    
Ondrej Bozek 11.01.2016 16:17
quelle
1

Sie müssen Ihr Unterabfrageergebnis zusammenführen:

%Vor%     
cghislai 20.05.2017 11:39
quelle

Tags und Links