Pour le moment, en utilisant spring, toutes les données sont récupérées et le flux n'est appliqué qu'aux données déjà en mémoire.
Si vous regardez la source de org.springframework.data.jpa.provider.PersistenceProvider
il semble qu'il utilise un ScrollableResults
pour diffuser les données.
Généralement un ScrollableResults
récupérer toutes les données en mémoire.
Vous pouvez trouver une analyse complète intéressante en utilisant une base de données MySql ici , mais probablement la même chose fonctionne pour une base de données Postgres.
De même, si vous pensez utiliser une solution qui n'a pas besoin d'utiliser beaucoup de mémoire en réalité, c'est parce que l'implémentation sous-jacente n'utilise pas une implémentation optimale.