Im Moment werden mit Spring alle Daten abgerufen und der Stream wird nur auf Daten angewendet, die sich bereits im Speicher befinden.
Wenn Sie sich die Quelle von org.springframework.data.jpa.provider.PersistenceProvider
ansehen es scheint, dass es ein ScrollableResults
verwendet um die Daten zu streamen.
Im Allgemeinen ein ScrollableResults
alle Daten im Speicher abrufen.
Eine interessante vollständige Analyse finden Sie unter Verwendung einer MySql-Datenbank hier , aber wahrscheinlich funktioniert das gleiche für eine Postgres-Datenbank.
Also auch, wenn Sie daran denken, eine Lösung zu verwenden, die in Wirklichkeit nicht viel Speicher benötigt, weil die zugrunde liegende Implementierung keine optimale Implementierung verwendet.