【发布时间】: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")
^
【问题讨论】: