Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Перекинуть из List<Tuple> в List<Client> / 18 сообщений из 18, страница 1 из 1
14.11.2018, 11:46
    #39732902
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
Добрый день,

просьба помочь с проблемой, желательно примером а не набором крутых слов...


Вызываю метод

Код: java
1.
List<Tuple> all = instance.сlentAll();



// почему <Tuple> - потому что в результирующем запросе, в БД, идет выборка из нескольких таблиц с разными полями

// запрос в БД идет через querydsl

// создал dto, ClientDto - что бы передавать данные дальше

и вот мне нужно
Код: java
1.
List<Tuple>

получить лист dto
Код: java
1.
List<ClientDto>



Спасибо!

Можно как-то с помощью стримов, но стремов я еще не знаю (Выучу обязательно - Обещаю)
но сейчас просто примером подскажите... срочно нужно!!!
...
Рейтинг: 0 / 0
14.11.2018, 12:00
    #39732911
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
Aleks_Aleks, если вы ждете "простых" решений - то это сторонние библиотеки, которые не потребует особых дополнительных усилий, при условии, что имена полей совпадают.(ModelMapper, например)

Код: java
1.
2.
ModelMapper modelMapper = new ModelMapper();
ClientDto clientDto= modelMapper.mapAll(Tuples, ClientDto .class);



Не проще ли сделать какую-нить фактори, типа

ClientDtoFactory с методом createList и с аргументом - из коллекции List<Tuple>?
...
Рейтинг: 0 / 0
14.11.2018, 12:06
    #39732918
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
Озверин,

Я же не против ))

Все создам, только скажите что и где?

примерный вид ClientDtoFactory...

Спасибо!
...
Рейтинг: 0 / 0
14.11.2018, 12:30
    #39732933
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
Aleks_Aleks,
Tuple и будет DTO?
...
Рейтинг: 0 / 0
14.11.2018, 12:33
    #39732936
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
Petro123,

Да, поля совпадают и по количеству и по типу.
...
Рейтинг: 0 / 0
14.11.2018, 12:41
    #39732943
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
ну если совпадают то можно doser брать
http://dozer.sourceforge.net/documentation/usage.html
...
Рейтинг: 0 / 0
14.11.2018, 12:50
    #39732948
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
Aleks_AleksPetro123,

Да, поля совпадают и по количеству и по типу.тогда Скрипач (третий) нам не нужен.
...
Рейтинг: 0 / 0
14.11.2018, 13:56
    #39732996
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
Буду разбираться спасибо за помощь!
...
Рейтинг: 0 / 0
14.11.2018, 14:08
    #39733002
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
Пробовал использовать

Код: java
1.
2.
ModelMapper modelMapper = new ModelMapper();
ClientDto clientDto = modelMapper.map(all, ClientDto.class);



Вернуло

Код: java
1.
ClientDto(id=null, clientNumber=null, name=null, shortName=null)



Но если посмотреть что возвращает all (переменная хранит ссылку метода который обращается к БД)

то данные в all есть
...
Рейтинг: 0 / 0
14.11.2018, 14:49
    #39733038
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
Aleks_Aleks, а all - це шо?
...
Рейтинг: 0 / 0
14.11.2018, 14:55
    #39733043
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
Aleks_Aleks
Код: java
1.
List<Tuple> all = instance.сlentAll();


Tuple замени на DTO class сразу. Без промежуточных.
...
Рейтинг: 0 / 0
14.11.2018, 14:57
    #39733045
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
Aleks_Aleks, я ж пример привел:

ClientDto clientDto = modelMapper. mapAll (all, ClientDto.class);
...
Рейтинг: 0 / 0
14.11.2018, 14:58
    #39733047
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
ОзверинAleks_Aleks, я ж пример привел:

ClientDto clientDto = modelMapper. mapAll (all, ClientDto.class);

List<ClientDTO> clients = modelMapper. mapAll (all, ClientDto.class);
...
Рейтинг: 0 / 0
14.11.2018, 15:24
    #39733062
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
Озверин,

Извиняюсь, нарушил самое главное качество айтишника - внимательность )

идея ругается что не может разрешить этот метод?
...
Рейтинг: 0 / 0
14.11.2018, 15:25
    #39733064
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
но поля DTO возвращаемые Tuple - одинаковые
...
Рейтинг: 0 / 0
14.11.2018, 15:37
    #39733072
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
Aleks_Aleks, полез в код,а там собственный класс для реализации с ссылкой на:

https://stackoverflow.com/questions/47929674/modelmapper-mapping-list-of-entites-to-list-of-dto-objects
...
Рейтинг: 0 / 0
14.11.2018, 15:59
    #39733085
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
Если разово, да еще так мало полей, то просто сделайте метод которые сеттит поля из другого класса геттерами, и возвращайте новый.
Если лист, то перебором.
А по правильному нужно маппер подключить, у нас в проекте юзают Orika, но вы можете любой другой взять, например тот, что выше предложили. Так будет гораздо меньше кода, а значит и путаницы, если класс разрастется или добавятся новые.
...
Рейтинг: 0 / 0
14.11.2018, 16:02
    #39733089
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть из List<Tuple> в List<Client>
упс, не увидел, что уже маппер подключили, ну разбирайтесь, гуглите :) Смотрите что методам этого маппера надо, примеры как они работают и прочее
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Перекинуть из List<Tuple> в List<Client> / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]