我作为初学者开始了Spring Rest项目。我的大多数实体都有超过15-20个属性,并且UI层上不需要所有属性。
我正在考虑使用DTO,原因如下:
我正在考虑使用DTO将多个实体合并在一起,根据角色隐藏/显示特定UI的某些信息,但我必须"分割/复制"当我需要保留详细信息时,DTO信息会返回给不同的实体。
员工 - 能够查看下一级经理的绩效评估和评论。 经理 - 能够输入绩效评估的评论,并指出员工的薪资增量(这不会显示在员工的用户界面中),但无法查看员工的当前薪酬。 HR - 能够查看所有UI的所有详细信息。
我想知道是否有更好的方法来处理这些问题,或者我是否正在为我的项目寻找合适的方向?
参考:http://www.baeldung.com/entity-to-and-from-dto-for-a-java-spring-application
答案 0 :(得分:6)
我总是使用DTO将我的观点与JPA实体分离。 除了列出的3个原因外,我还可以添加以下内容。
@JSONCreator
你可以拥有不可变的DTO,它可以有一些优点 - 虽然大多数时候DTO不用于多线程上下文,因此不需要。在我的项目中,我总是使用Lombok来生成访问方法,这意味着DTO通常只包含数据字段(有时输入DTO具有验证器或实用程序方法)。这使得它们非常容易创建/修改,并且易于与包含逻辑的类区分开来。与编写业务逻辑相比,创建DTO没有时间,因此实现这种去耦的成本非常低,而且老实说我相信这样可以更容易地阅读代码。
答案 1 :(得分:1)
最好使用DTO拥有干净的体系结构,并且使用DTO,当您修改Table时,FrontEnd不会有任何更改。
但是最好小心使用它。
祝你好运。