java - ModelMapper::map() 的非预期行为
问题描述
我使用 ModdelMapper::map() 来更新实体。
我有实体和 dto:
@Entity
@Builder(toBuilder = true)
@Data
public class CustomerOrder {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToMany(
cascade = CascadeType.ALL)
private List<LineItem> lineItems;
private Long customerId;
@Data
@Builder(toBuilder = true)
public class OrderRequest {
@NotNull
private Long customerId;
@NotEmpty(message = "Products is mandatory")
private List<LineItemDTO> lineItems;
我的控制器:
@PutMapping("/{id}")
public ResponseEntity<OrderResponse> updateOrder(@PathVariable Long id,
@Valid @RequestBody OrderRequest orderDto){
final Optional<CustomerOrder> orderById = repository.findById(id);
return orderById
.map(order -> {
mapper.updateEntity(orderDto, order);
repository.save(order);
return ResponseEntity.ok(mapper.toDto(order));
})
.orElse(ResponseEntity.notFound().build());
}
我看到 Id 字段已更新为 customerId 的值。为什么会这样?
解决方案
推荐阅读
- r - 在降价演示中自定义绘图 DPI
- python - 一个热编码具有未观察到的级别的字符列表
- office365 - CustomTab 加载项清单 xml 无法正常工作 Excel 2016
- cmake - Cmake 中的 INFERENCE_ENGINE_LIB 未设置错误
- java - Android ListView 显示不正确
- python - C++ 版本的 Python 循环“for i, num in enumerate(list):”
- java - 如何计算格式为 TimeDuration 的时间差
- swift - 如何在 GCDWebUploader 中限制上传文件类型/格式
- c - 我在菜单中的第一个功能有问题
- eclipse-hono - 将数据从 Hono 发送到同上 (amqp:resource-limit-exceeded)