Related to #724, DataAccessUtils should provide an optionalResult method for Collection as well as Stream arguments (and also for Iterator because we need that internally anyway), returning a corresponding Optional wrapper or Optional.empty().

In addition, a singleResult overload for a Stream argument (and for Iterator) would complete the overall arrangement in DataAccessUtils.

Comment From: rstoyanchev

Superseded by #27735.