列表显示其先例值
List displays its precedent value
所以我正在使用模型映射器来转换我所有的实体,到目前为止工作正常。
我有一个实体 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.
可能是什么问题?
编辑
我如下更改了 TaskDTO 中的方法 setCharge,工作正常。
public void setCharge(List<ChargeInitial> charge) {
List<Double> list = new ArrayList<>();
for (ChargeInitial c : charge) {
list.add(c.getCharge());
}
this.charge=list;
}
您可以使用 Converter
、List<ChargeInitial>
到 List<Double>
。
public static TaskDTO converTaskToDTO(Task source) {
TypeMap<Task, TaskDTO> typeMap = modelMapper.getTypeMap(Task.class, TaskDTO.class);
if (typeMap == null) {
PropertyMap<Task, TaskDTO> mapping = new PropertyMap<Task, TaskDTO>() {
@Override
protected void configure() {
map().setLot(source.getLot().getName());
map().setProject(source.getLot().getProject().getName());
map().setCollaborator(source.getCollaborator().getEmail());
}
};
modelMapper.addMappings(mapping);
Converter<List<ChargeInitial>, List<Double>> chargeInitialConverter = new AbstractConverter<>() {
@Override
protected List<Double> convert(List<ChargeInitial> source) {
List<Double> icList = new ArrayList<>();
for (ChargeInitial c : source) {
icList.add(c.getCharge());
}
System.out.println(icList);
return icList;
}
};
modelMapper.addConverter(chargeInitialConverter);
}
return modelMapper.map(source, TaskDTO.class);
}
所以我正在使用模型映射器来转换我所有的实体,到目前为止工作正常。 我有一个实体 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.
可能是什么问题?
编辑
我如下更改了 TaskDTO 中的方法 setCharge,工作正常。
public void setCharge(List<ChargeInitial> charge) {
List<Double> list = new ArrayList<>();
for (ChargeInitial c : charge) {
list.add(c.getCharge());
}
this.charge=list;
}
您可以使用 Converter
、List<ChargeInitial>
到 List<Double>
。
public static TaskDTO converTaskToDTO(Task source) {
TypeMap<Task, TaskDTO> typeMap = modelMapper.getTypeMap(Task.class, TaskDTO.class);
if (typeMap == null) {
PropertyMap<Task, TaskDTO> mapping = new PropertyMap<Task, TaskDTO>() {
@Override
protected void configure() {
map().setLot(source.getLot().getName());
map().setProject(source.getLot().getProject().getName());
map().setCollaborator(source.getCollaborator().getEmail());
}
};
modelMapper.addMappings(mapping);
Converter<List<ChargeInitial>, List<Double>> chargeInitialConverter = new AbstractConverter<>() {
@Override
protected List<Double> convert(List<ChargeInitial> source) {
List<Double> icList = new ArrayList<>();
for (ChargeInitial c : source) {
icList.add(c.getCharge());
}
System.out.println(icList);
return icList;
}
};
modelMapper.addConverter(chargeInitialConverter);
}
return modelMapper.map(source, TaskDTO.class);
}