【问题标题】:Java Spring: automatic EntityToDTO mapping using a method instead of an attributeJava Spring:使用方法而不是属性的自动 EntityToDTO 映射
【发布时间】:2021-04-12 12:40:05
【问题描述】:

在 Spring 中,实体和 DTO 之间有很好的自动转换:

@Mapping(source = "senderId", target = "senderId")
@Mapping(source = "text", target = "text")
MessageGetDTO convertEntityToMessageGetDTO(Message message);

这里我们将消息实体的服务器内部表示转换为将发送到客户端的相应 DTO。

现在假设我们希望 DTO 具有与实体不同(相关)的数据:我们希望将发送者的姓名作为字符串发送,而不是向客户端显示发送者的 ID。

消息实体没有发件人的姓名,但一个简单的方法可以使用 senderId 从数据库中获取该姓名。

所以这是我的问题:如何使这些自动映射之一使用方法而不是属性?

@Mapping(source = "getSenderName()", target = "senderName")
                         ^

【问题讨论】:

    标签: java spring rest dto


    【解决方案1】:

    我认为您正在寻找表达式。
    它将是: @Mapping( target = "senderName", expression = "java(getSenderName())" )
    更多帮助:https://www.tutorialspoint.com/mapstruct/mapstruct_using_expression.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-24
      相关资源
      最近更新 更多