为什么我们必须将实体转换为dto?

Why do we have to convert entity to dto?

我正在尝试理解 Spring 引导和构建 Rest API。

我见过一些创建自己的 Converter class 或使用 modelMapper 的项目。但是没能看清大意

为什么我们必须将实体转换为 DTO?我找不到很多关于它的文档。你能帮帮我吗?

我发现了两种不同的映射方式。

mapstruct 和 modelmapper。我应该使用哪一个?

DTO 表示数据传输对象,它们在许多情况下都很有用。

  1. 因为实体代表数据库并且所有字段都是直接创建的,例如。产品实体具有以下架构

    名称:“字符串”, 描述:“字符串”, quantity_number:整数, quantity_qom: "字符串", amount_price: 200 amount_measure: "美元"

DTO 帮助我们以结构化的方式显示响应或请求,例如

{ product:{
  item:{
  name:"string",
  desc:"string",
},
amount:{
  amount_price:200,
  amount_measure:"USD"
},
quantity:{
quantity_number:2,
quantity_qom:"Pcs"
 }
}
}

关于用法我更喜欢modelmapper