Efter några timmar efter hittade jag problemet. Standard hämtningsstorlek för OJDBC är 10, så med ökande antal rader för hämtning ökar tiden mycket snabbt.
Vad är konstigt:detta var min första idé, så jag försökte ställa in <property name="eclipselink.jdbc.fetch-size" value="100"/> i persistence.xml . Det fungerade inte, så jag hoppade till andra lösningar. Idag har jag ställt in den på en enda fråga av query.setHint("eclipselink.jdbc.fetch-size", 100) och det fungerar.