I am trying to create a list by using the fields in two object using map struct. Its creating the new list successfully with all the fields but i am losing all the values in the objects. I am using map struct 1.5.5 Final and not using lombok for getter and setter. Please help me to find out what i am missing.
public static void main(String[] args) {
FhExtra fhExtra = new FhExtra();
fhExtra.setLoanNumber("123456");
fhExtra.setFILoanNumber("896");
FhExtraImportResults extraImportResults1 = new FhExtraImportResults();
extraImportResults1.setLoanId(56L);
extraImportResults1.setRecord(fhExtra);
List<FhExtraImportResults> extraImportResults = new ArrayList<>();
extraImportResults.add(extraImportResults1);
FhListItemMapper mapper = Mappers.getMapper(FhListItemMapper.class);
List<FhlbExtraCsv> newList = extraImportResults.stream().map(mapper::map).toList();
// newList is having all the fields but dont have the values i set.
}
@Mapper
public interface FhListItemMapper {
@Mapping(target = "loanId", source = "results.loanId")
@Mapping(target = "error", source = "results.error")
FhlbExtraCsv map(FhlbExtraImportResults results);
}
public class FhExtra {
String LoanNumber;
String FILoanNumber;
}
public class FhlbExtraImportResults {
FhExtra record;
String error;
Long loanId;
}
public class FhlbExtraCsv {
String LoanNumber;
String FILoanNumber;
String error;
Long loanId;
}
Expected output is like
[{
LoanNumber : 123456
FILoanNumber : 896
error : null
loanId : 56
}]