Miwi wrote:
Die Methoden setFirstResult() und setMaxResult() hab ich ja, aber das verhindert ja nicht, dass ich bei großen Tabellen erst mal ALLES als Resultset laden muss
Doch, genau das verhindert Hibernate damit (wenn die verwendete DB einen entsprechenden Mechanismus unterstützt).
Für Oracle werden dann z.B. Statements der Form
Code:
select * from ( select row_.*, rownum rownum_ from ( select distinct this_.FELD as y0_ from SCHEMA.TABELLE this_ where this_.FELD like ? order by this_.FELD asc ) row_ where rownum <= ?) where rownum_ > ?
erzeugt. "Eingebettet" in der innersten Klammer liegt dann dein eigenes Statement. In der Session selbst kommen dann von Seiten der DB her nur die gewünschten Daten an und nicht die Gesamtdaten des Statements.