Java 将复合DTO分离为多个域对象的最佳方法是什么

Java 将复合DTO分离为多个域对象的最佳方法是什么,java,spring,hibernate,rest,Java,Spring,Hibernate,Rest,我找不到类似的问题,我开始怀疑我是否从我的领域模型开始就做对了 例如: 我们有两个域对象-汽车和引擎 class Car { Long weight; String model; String color; Engine engine; } class Engine { Long power; Long torque; Enum fuelType; } 对于表示级别,我有一个DTO,所有字段都没有嵌套对象 clas VehicleDTO { Long carWeight; String ca

我找不到类似的问题,我开始怀疑我是否从我的领域模型开始就做对了

例如: 我们有两个域对象-汽车和引擎

class Car {
Long weight;
String model;
String color;
Engine engine;
}

class Engine {
Long power;
Long torque;
Enum fuelType;
}
对于表示级别,我有一个DTO,所有字段都没有嵌套对象

clas VehicleDTO {
Long carWeight;
String carModel;
String color;
Long enginePower;
Long engineTorque;
Enum fuelType;
}
而且我无法决定将值从数据传输对象映射到域模型的最佳方式。我想到的第一种方法是在单个服务类中实现映射。但如果DTO链接到2个以上的域,就会导致大量的存储库和其他服务字段注入,这看起来非常难看

第二种解决方案是使用链设计模式,其中每个链接只负责特定领域的字段。但最后一种方法似乎也不太好


你能告诉我如何正确而简洁地解决这个问题吗?

你不能在你的任何一个类中重命名相同的字段吗?为什么不让类VehicleDTO包含CarDTO和EngineDTO(比如让DTO代表域对象)?