在 Spring ,实体和DTO之间有一个很好的自动转换:
@Mapping(source = "senderId", target = "senderId")
@Mapping(source = "text", target = "text")
MessageGetDTO convertEntityToMessageGetDTO(Message message);
在这里,我们将消息实体的服务器内部表示转换为将发送到客户机的相应dto。
现在假设我们希望dto具有与实体不同的(相关的)数据:我们不希望向客户机显示发送者的id,而是希望将发送者的名称作为字符串发送。
消息实体没有发件人的名称,但是一个简单的方法可以使用senderid从数据库中获取该名称。
所以我的问题是:如何让这些自动Map中的一个使用方法而不是属性?
@Mapping(source = "getSenderName()", target = "senderName")
^
1条答案
按热度按时间g9icjywg1#
我想你在找表情。
它将是:
@Mapping( target = "senderName", expression = "java(getSenderName())" )
更多帮助:https://www.tutorialspoint.com/mapstruct/mapstruct_using_expression.htm