Mapstruct-转换包含并与自己对接的对象

时间:2019-01-21 09:06:31

标签: java spring dto mapstruct

我正在使用mapstruct将一个对象转换为另一个对象。 在要转换的对象中,有一个接口,而mapstruct不喜欢这样。

通过实现方法的默认值并指定要调用的实现,我能够将接口转换为对象:

public default MessagesList interfaceMapping (Integer not, List<MessageEntity> list) {

    return messToImpl(numNotification, list);
}

现在的问题是,我不知道如何执行类似的解决方法来转换签名为接口的内部对象。

1 个答案:

答案 0 :(得分:0)

只需找到一种为单个对象映射实现自定义代码的好方法:

@Mapping(target = "sender", expression = "java(new YourClass(null, messageEntity.getSenderType(), messageEntity.getSenderID(), messageEntity.getSenderContact()))")

通过这种方式,您可以通过表达式仍然使用mapstruct定义来定义自定义代码。

以防万一您需要导入未定义为源或目标的类,只需记住按以下方式注释该类,以允许mapstruct导入所需的类:

@Mapper(imports = YourClass.class)