Entity Class到DTO Class的转换应该在哪一层处理?

问题描述

正如标题所理解的,我对从Entity Class到DTO Class的转换感兴趣。 根据我在 Stackoverflow 和其他站点的研究,如果我使用任何 ORM 工具,DAO 类应该始终返回实体对象。但是如果我使用 JDBCTemplate 呢?或者如果我使用JDBC?那我应该在哪一层进行Entity到DTO的转换呢? DAO 也是?还是在服务层?如果您的回答在技术上具有解释性,我将不胜感激。

解决方法

您的 DTO 或模型层将是包含实体的层。 DAO 或存储库层将通过 JPA 处理 CRUD 操作,并且只允许与 DTO/实体对象交互。最后是服务层或适配器层,它将通过调用 DAO 层的方法来执行从 DTO 到所需的其他类型的转换。

在 JDBC 的情况下,DTO 层可以充当 POJO 层。我相信基于JPA的DAO层可以基于JDBC来执行查询,构建POJO对象并将它们返回给服务层。所以最终它只是将基于JPA的DAO层替换为基于JDBC的。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...