To keep objects few, load lazily. E.g. if you need a List<Long> of ids from a List<Thing> create a lazy list view using (some library and..) Thing::id as a map/transform function. Way faster than the Streaming API. Works better if you only work with immutable types.
~2c