假设你谈到将实体序列化为json而不是使用不太清楚的DTO,是的,从架构的角度来看,DTO是正确的选择。在控制器下面,最常见的是在某个域上运行的服务层,比如来自排队系统的持久性实体或实体。
将REST API与域隔离并将较低级别的域实体映射到服务级别的DTO是最明智的,最常见的是使用POJO映射器。
这会产生一些性能影响,您可以对其进行优化,但具有层间结构隔离的优势。
第二个好处是,您可以聚合来自较低层的信息并操纵您的REST界面,因为您最好的服务,
如果再次讨论实体,那么在持久层中添加REST api属性是错误的。
所有这一切从概念的角度来看。 另一件应该阻止你服务JPA2实体的事情是从查询返回的对象是增强对象,所以使用mapper会再次给你更多控制权。
选择映射器配置有点棘手,因为如果您在持久性/域级映射中暴露crud操作变得多余。 公开实体只会导致缩放问题