在何处、何时以及如何将 DTO 与实体进行转换

Mel*_*ius 3 java architecture

我有一个项目

  • 持久层
  • 业务层
  • 表示层

我还为每个实体都有 DTO,

@Entity
@Table(name = "insurance_config")
public class InsuranceConfiguration {
Run Code Online (Sandbox Code Playgroud)

和DTO

public class InsuranceConfigurationDTO {
Run Code Online (Sandbox Code Playgroud)

从架构的角度来看,将 DTO 与 Entity 相互转换的最佳实践是什么?

转换应该在哪一层进行?

我应该将转换方法放在 DTO/Entity 中还是单独的类中?

Tac*_*uma 6

您应该在 Web/服务/持久层之间引入接口层并避免传递依赖。并且转换逻辑不应该包含在 DTO 中,而应该包含在不同的类中,但这是我的观点。

为了更好地理解,我为此创建了一个简单的 UML:可能不是 UML 图历史上最好的 UML

(PS:如果需要的话我可以将这个项目发布到github)