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

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


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

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



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

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

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

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

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



Спасибо!

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

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



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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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