Reputation: 839
I have a native query which returns a List<Object[]>
.
I want to convert this List
to a Stream<Object>
.
These Objects are different columns from different tables of my database.
What is the best solution to do that?
Create a DTO and convert a List<DTO>
to Stream<DTO>
? How can I do that?
Upvotes: 5
Views: 949
Reputation: 7107
Use flatMap
:
List<Object[]> objectsList = new ArrayList<>();
Stream<Object> objectStream = objectsList.stream()
.flatMap(Arrays::stream);
Upvotes: 10
Reputation: 393841
Assuming your DTO
class has a proper constructor, you can write something like this:
List<Object[]> input = ...
Stream<DTO> dtos = input.stream().map(arr -> new DTO(arr[0], arr[1], ... , arr[n]);
Upvotes: 11