[英]How map List into DTO
我有这个问题,这是我的 DTO:
public class OrderDTO {
private Long id;
@JsonProperty("_embedded")
private OrderEmbeddedListJsonDTO embedded;
}
这是我的另一个 DTO:
public class OrderEmbeddedListJsonDTO {
private List<Order> order;
}
但我需要地图 OrderEmbeddedListJsonDTO 属性,因为 OrderDTO 例如:
orderDTOMapped.setEmbedded(order.getEmbedded(HERE NEED: setStartAddress("new value")));
这是 orderDTOMaped 的类:
public OrderWithAddressDTO orderToOrderDTO(OrderDTO order) throws OrderGetException {
try {
OrderWithAddressDTO orderDTOMapped = new OrderWithAddressDTO();
orderDTOMapped.setId(order.getId());
orderDTOMapped.setEmbedded(order.getEmbedded());
return orderDTOMapped;
} catch (Exception e) {
throw new OrderGetException();
}
};
而订单是一个实体:
public class Order implements java.io.Serializable {
private Long id;
private Double latitude;
private Double longitude;
@JsonProperty("_embedded")
private OrderEmbeddedListJsonDTO embedded;
}
怎么能做到这一点? 请问你能帮帮我吗?
您可以遍历OrderDTO#embedded
项目,将每个项目映射到一个新实例,复制/替换您需要的任何数据:
public OrderWithAddressDTO orderToOrderDTO(OrderDTO order) throws OrderGetException {
try {
OrderWithAddressDTO orderDTOMapped = new OrderWithAddressDTO();
orderDTOMapped.setId(order.getId());
List<Order> shippableOrders = order.getEmbedded()
.getOrder()
.stream()
.map(this::mapOrderToShippableOrder)
.collect(Collectors.toList());
OrderEmbeddedListJsonDTO ordersList = new OrderEmbeddedListJsonDTO();
ordersList.setEmbedded(ordersList);
return orderDTOMapped;
} catch (Exception e) {
throw new OrderGetException();
}
};
private Order mapOrderToShippableOrder(Order order) {
Order result = new Order();
// map fields from `order` to `result` order including `new-address`
return result;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.