Alex_winf01 Geschrieben 4. November 2015 Geschrieben 4. November 2015 Ich habe folgendes SQL-Statement (vereinfacht hier dargestellt): SELECT <feld1>, <feld2> WHERE <feld1> = <wert> AND <feld2> = <wert> ORDER BY <feld1> FETCH FIRST 5 ROWS ONLY; Nun ist es so, die Abfrage ergibt ca. 50.000 Datensätze, von denen ich nur 5 haben möchte. Dieses Limit wird gänzlich ignoriert und trotzdem die 50.000 Datensätze gezogen. Ich habe es auch schon mit LIMIT probiert statt FETCH FIRST 5 ROWS ONLY; Ergebnis das gleiche. Als Technologie setze ich Hibernate ein. Ich logge das Statement und die Query mit. Statement sieht so aus: SELECT <feld1>, <feld2> WHERE <feld1> = <wert> AND <feld2> = <wert> ORDER BY <feld1> FETCH FIRST 5 ROWS ONLY; Die von Hibernate ausgeführte Query sieht so aus: SELECT <feld1>, <feld2> WHERE <feld1> = <wert> AND <feld2> = <wert> ORDER BY <feld1>; Kann mir jemand helfen?
Alex_winf01 Geschrieben 4. November 2015 Autor Geschrieben 4. November 2015 Kleines Update: Ich nutze Query.setMaxResults() und setze eine DB2-Datenbank ein. Trotzdem zieht die Limitierung im SQL nicht. Dort kann ich ja im SQL nicht mit LIMIT arbeiten, sondern muss mit FETCH FIRST 5 ROWS ONLY; arbeiten.
Crash2001 Geschrieben 5. November 2015 Geschrieben 5. November 2015 Zitat [...]The FETCH FIRST clause cannot be used in an outermost fullselect that contains a FOR UPDATE clause.[...] Quelle Trifft das eventuell zu?
Alex_winf01 Geschrieben 5. November 2015 Autor Geschrieben 5. November 2015 (bearbeitet) @Crash2001 danke schon mal für Deine Antwort. Vor dem setMaxResult() rufe ich noch setFirstResult() auf. Ich habe eine andere Methode, die bis auf das SQL-Statement genau identisch aussieht. Ich nenne mal die andere Methode "Methode2". Diese Methode2 funktioniert mit dem Limit, meine andere Methode nicht. Obwohl sich beide Methoden nur vom Query unterscheiden. Kleiner Nachtrag: In Methode2 habe ich keinen Left Join, in meiner Methode1 (die setMaxResult ignoriert) schon. Bearbeitet 5. November 2015 von Alex_winf01
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden