Ich habe diese pageOndData Objekt als Ziel mapstructal
Code: Select all
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;
}
Code: Select all
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;
}
Verwenden Sie Mapstruct , um Werte von SearchResult-> pageandData
@Mapper // current impl, partailly ok
public interface searchResultToPageAndData{
@Mapping(source = "pageInfo", target = "info")
@Mapping(source = "pageData", target = "data")
PageAndData mymap(SearchResult searchResult);
}
Ausgabeerwartung.
Code: Select all
//
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
Ich sollte Daten von Tasche zu Brieftasche mit Änderung des Schlüsselnamens der Tasche zu Brieftasche mit Änderung der verschachtelten Keynames auch
erhalten.
Code: Select all
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"
}
]
}
}