Как конвертировать списокдля потоковой передачи <Object> - PullRequest
0 голосов
/ 23 января 2019

У меня есть собственный запрос, который возвращает List<Object[]>.Я хочу преобразовать это List в Stream<Object>.Эти объекты - разные столбцы из разных таблиц моей базы данных.

Какое лучшее решение для этого?

Создать DTO и преобразовать List<DTO> в Stream<DTO>?Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Использование flatMap:

List<Object[]> objectsList = new ArrayList<>();
Stream<Object> objectStream = objectsList.stream()
        .flatMap(Arrays::stream);
0 голосов
/ 23 января 2019

Предполагая, что у вашего DTO класса есть правильный конструктор, вы можете написать что-то вроде этого:

List<Object[]> input = ...
Stream<DTO> dtos = input.stream().map(arr -> new DTO(arr[0], arr[1], ... , arr[n]);
...