Depois de algumas horas seguintes, encontrei o problema. O tamanho de busca padrão do OJDBC é 10, portanto, com o aumento do número de linhas para buscar, o tempo aumenta muito rapidamente.
O que é estranho:essa foi minha primeira ideia, então tentei definir
<property name="eclipselink.jdbc.fetch-size" value="100"/>
em persistence.xml
. Não funcionou, então pulei para outras soluções. Hoje eu configurei em uma única consulta por query.setHint("eclipselink.jdbc.fetch-size", 100)
e funciona.