Nach ein paar Stunden fand ich das Problem. Die Standardabrufgröße von OJDBC ist 10, sodass die Abrufzeit mit zunehmender Anzahl von Zeilen sehr schnell zunimmt.
Seltsam:Das war meine erste Idee, also habe ich versucht, <property name="eclipselink.jdbc.fetch-size" value="100"/>
festzulegen in persistence.xml
. Es hat nicht funktioniert, also bin ich zu anderen Lösungen gesprungen. Heute habe ich es mit query.setHint("eclipselink.jdbc.fetch-size", 100)
auf Einzelabfrage gesetzt und es funktioniert.