2017-07-03 72 views
2

我有项目,我有在何处,何时以及如何转换DTO /从实体

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

而且我有DTO for each Entity,

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

和DTO

public class InsuranceConfigurationDTO { 

从建筑的角度 什么是DTO转换到/从实体的最佳做法?

转换应发生在哪一层?

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

+3

任何回答这个问题将是一个意见。举个例子,我建议,只要逻辑上从一个系统层传递到另一个系统层,您应该将DTO转换为实体。 “何时”或“何地”完全取决于您自己决定。 –

+0

@ M.Prokhorov,最佳实践是什么? –

+0

重要吗?最佳做法是意见。意见改变并且在SO回答的背景下无用。哦,不同的系统构建风格遵循不同的最佳实践。 –

回答

1

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

3

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

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

(PS:我会发布这个项目,如果需要的GitHub)

+1

你应该写关于它的文章并在线提交 –

相关问题