У меня есть собственный запрос, который возвращает List<Object[]>.Я хочу преобразовать это List в Stream<Object>.Эти объекты - разные столбцы из разных таблиц моей базы данных.
List<Object[]>
List
Stream<Object>
Какое лучшее решение для этого?
Создать DTO и преобразовать List<DTO> в Stream<DTO>?Как я могу это сделать?
List<DTO>
Stream<DTO>
Использование flatMap:
flatMap
List<Object[]> objectsList = new ArrayList<>(); Stream<Object> objectStream = objectsList.stream() .flatMap(Arrays::stream);
Предполагая, что у вашего DTO класса есть правильный конструктор, вы можете написать что-то вроде этого:
DTO
List<Object[]> input = ... Stream<DTO> dtos = input.stream().map(arr -> new DTO(arr[0], arr[1], ... , arr[n]);