在何时,何时以及如何将DTO转换为实体或从实体转换

时间:2017-07-03 11:52:21

标签: java architecture

我有项目,我有

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

我也有每个实体的DTO,

@Entity
@Table(name = "insurance_config")
public class InsuranceConfiguration {

和DTO

public class InsuranceConfigurationDTO {

从架构角度来看 将DTO转换为实体或从实体转换的最佳实践是什么?

应该在哪个层进行转换?

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

3 个答案:

答案 0 :(得分:3)

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

为了更好地理解,我为此创建了一个简单的UML:Might not the best UML in the history of UML diagrams

(PS。:如果需要,我可以将此项目发布到github)

答案 1 :(得分:1)

here is a link您可以了解 TOA 设计模式。我想这就是你要找的。在这里你调用一个dao类,在得到一个对象或对象列表后,你可以调用一个Dozer映射器,你可以用它来实现从实体到dto的转换,它可以在util包或mapper包中。我认为最好的是业务层,或者可能是持久性......但当然不是演示文稿..

答案 2 :(得分:0)

我自由地实现了Tacsiazuma的设计,这是here