Итак, я использую modelmapper для преобразования всех моих сущностей, до сих пор работал нормально. У меня есть объект TaskDTO со списком Double в его атрибутах. Я могу восстановить этот список, но как только запрос сделан, все последующие запросы получат тот же список.
Вот часть моего конвертера:
public static TaskDTO converTaskToDTO(Task source) {
List<Double> icList = new ArrayList<>();
for (ChargeInitial c : source.getCharge()) {
icList.add(c.getCharge());
}
System.out.println(icList);
TypeMap<Task, TaskDTO> typeMap = modelMapper.getTypeMap(Task.class, TaskDTO.class);
if (typeMap == null) {
modelMapper.addMappings(new PropertyMap<Task, TaskDTO>() {
@Override
protected void configure() {
map().setLot(source.getLot().getName());
map().setProject(source.getLot().getProject().getName());
map().setCollaborator(source.getCollaborator().getEmail());
map().setCharge(icList);
}
});
}
return modelMapper.map(source, TaskDTO.class);
}
Однако sysout печатает правильные список для меня.
Например, если в первом запросе я получаю плату [1,2] за этот список, второй запрос также будет [1,2] для каждого списка оплаты, даже если я получаю право результат, который равен [1,2,3,4,5] в моем system.out.
В чем может быть проблема?
EDIT
Я изменил метод setCharge в TaskDTO следующим образом, работает нормально.
public void setCharge(List<ChargeInitial> charge) {
List<Double> list = new ArrayList<>();
for (ChargeInitial c : charge) {
list.add(c.getCharge());
}
this.charge=list;
}