Mapstruct - Картирование вложенных объектов с массивом?JAVA

Программисты JAVA общаются здесь
Anonymous
Mapstruct - Картирование вложенных объектов с массивом?

Сообщение Anonymous »

input
У меня есть эти pageanddata объект как target mapstruct
public class PageAndData {
Page page;
List data;
}
public class Page {
private int size;
private int totalPages;
}
public class Data{
Integer id;
String name;
List wallets;
}
public Wallet{
Integer walletId;
String walletName;
}

У меня есть эти searchresult как source
public class SearchResult{
PageInfo pageInfo;
List pageData;
}
public class PageInfo{
private int size;
private int totalPages;
}
public class PageData{
Integer id;
String name;
List bags;
}
public Bag{
Integer bagId;
String bagName;
}

Вопрос
с использованием mapstruct для карты значений из SearchResult-> pageAnddata

@Mapper // current impl, partailly ok
public interface searchResultToPageAndData{

@Mapping(source = "pageInfo", target = "info")
@Mapping(source = "pageData", target = "data")

PageAndData mymap(SearchResult searchResult);

}

woutput Ownation
Значения от searchresult должны перейти на PageAndData , ожидаемое отображение
//
SearchResult.pageInfo.size -> PageAndData.info.size
SearchResult.pageInfo.totalPages -> PageAndData.info.totalPages
SearchResult.PageData.id -> PageAndData.data.id
SearchResult.PageData.name -> PageAndData.data.name
SearchResult.PageData.bag -> PageAndData.data.id.wallet
//for every element of array
SearchResult.PageData.bag.bagId -> PageAndData.data.id.walletId
SearchResult.PageData.bag.bagName -> PageAndData.data.id.walletName

Пример:
Я должен получить данные из сумки на кошелек с изменением ключевого имени сумки на кошелек с изменением вложенных ключевых имено.SearchResult{
pageInfo{
size : 5
totalPages : 10
}
pageData{
id : 1
name : "Page101"
bag:[
{
bagId : 1
bagName : "bagname"
}
]
}
}
This shud get mapped to
PageAndData{
info{
size : 5
totalPages : 10
}
data{
id : 1
name : "Page101"
wallet:[
{
walletId : 1
walletName : "bagname"
}
]
}
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... ving-array

Вернуться в «JAVA»