ich folgende (für dieses Beispiel: MySQL) realisieren will Anweisung in JPA 2.1 mit Eclipse als Implementierung:JPA - Abfrage mit ‚Composite-Wert‘ in where-Klausel
select *
from account
where (mailing_zip_code, id) > (56237, 275)
order by mailing_zip_code asc, id asc
limit 10;
Was ich erreichen will ist eine Implementierung der Suchmethode für endloses Scrollen ohne Verwendung eines Offsets in der Abfrage. Mit Fokus auf die Where-Klausel kann ich keinen korrekten Namen für dieses Konstrukt finden. An einigen Stellen wird es "zusammengesetzter Wert" genannt, aber ich kann keine Ergebnisse mit diesem Namen finden, aber es scheint mit dem SQL-92-Standard konform zu sein.
Diese Aussage wird um Filterparameter erweitert, also möchte ich natürlich mit der JPA-Kriterien-API bauen.
Ich habe die API schon seit einiger Zeit durchsucht, tut jemand jetzt, ob und wie das möglich ist?
Ihre längere Abfrage werden Sie Ergebnisse, wo mailing_zip_code größer als '56237' und id-Wert kleiner als 276. Ist die Bedeutung von '(mailing_zip_code, id)> (x, y)'? Ich finde das überraschend. – carbontax
Woher bekommen Sie den 'weniger als 276' Teil? Ich sehe einen Tippfehler (276 statt 275), aber die Aussage sagt deutlich "id> 276". Ich fand diese Aussage in dieser Präsentation von Markus Winand: http://image.slidesharecdn.com/paginationdonethepostgresqlwayv2-130530141009-phpapp02/95/pagination-done-the-right-way-23-638.jpg?cb=1403756206 (http : //de.slideshare.net/MarkusWinand/p2d2-pagination-done-the-postgresql-way ref = http: //use-the-index-luke.com/blog/2013-07/pagination-done-the -postgresql-way) – javahippie
Typo beiseite, las ich die Abfrage als eine Vereinigung der Menge aller Konten zurückkehren, wo mailing_zip_code größer als ‚56237‘ (die id von Wert) und der Menge aller Konten enthält, wo mailing_zip_code = ‚56237 'und id> 276 – carbontax