在我的Spring启动项目中,我使用hibernate,基本上我们有三种对象
- 控制器层中使用的DTO对象
- 业务对象-业务对象是我们在整个应用程序中使用的对象
- 实体/域对象-用于JPA层
当我们准备保存数据时,我们将业务对象转换为域/实体对象
当我们准备好将其发送到客户端/控制器时,我们可以将实体对象转换为业务对象,然后将此业务对象转换为DTO对象。
理想情况下,我被告知将BO更改为->(DTO和实体(,反之亦然?
我们如何以有效的方式实现这一目标?有人能举些例子吗?
我喜欢在我参与的所有项目中使用Mapstruct
我最喜欢它的几个方面:
- 显然,您在编码转换上花费的时间更少(请查看主页上的"MapStruct in 2 Minutes"(
- 如果类中要转换到的属性名和要从中转换的属性名相同,那么编写的代码就更少了
- 它与spring集成得很好,所以您不需要声明任何bean或其他东西,只需指定它是"弹簧";组件模型
- 您有多种方法来映射实体——例如,创建新实体,使用DTO中的值更新现有实体
- 子对象也很容易映射。它有一个内部机制,试图在其他映射器中选择正确的映射器方法。或者您可以自己任意指定其名称
尽管您也可以查看ModelMapper。很像图书馆,但我自己很少用。所以不能提出任何特别的建议。
这个任务没有银弹,但您可以考虑使用模型映射器;这是一个简单的例子https://www.baeldung.com/entity-to-and-from-dto-for-a-java-spring-application