代码之家  ›  专栏  ›  技术社区  ›  PassionateAbtCoding

具有业务对象、DTO和实体/域对象的数据转换模式

  •  0
  • PassionateAbtCoding  · 技术社区  · 4 年前

    在我的springboot项目中,我使用hibernate,基本上我们有三种对象

    • 在控制器层中使用的DTO对象。
    • 业务对象—业务对象是我们在整个应用程序中使用的对象。

    当我们准备好保存数据时,我们将业务对象转换为域/实体对象

    当我们准备好将其发送给客户机/控制器时,我们可以将实体对象转换为业务对象,然后将此业务对象转换为DTO对象。

    理想情况下,我被告知将BOs改为->(DTO和实体),反之亦然,是否驻留在BOs本身?

    我们如何有效地实现这一目标?有人能举些例子吗?

    0 回复  |  直到 4 年前
        2
  •  0
  •   Alex    4 年前

    我喜欢用 Mapstruct 在我参与的所有项目中

    1. 显然,您在编码转换上花费的时间更少(请查看主页上的“2分钟内的MapStruct”)
    2. 如果类中要转换的属性名相同,那么编写的代码就更少。
    3. 您有多种方法可以映射实体—例如,使用DTO中的值创建新的、更新现有的实体。
    4. 子对象也很容易映射。它有内部机制,试图在其他映射器中选择正确的映射器方法。或者您可以自己指定它的名称。

    不过你也可以看看 ModelMapper 也。很相似的图书馆,但我自己很少用。所以我不能提出任何特别的建议。