当前位置: 首页 > 知识库问答 >
问题:

使用Mapstruct重用修饰映射器

梁宏才
2023-03-14

按照第二个链接中包含的示例,我已经测试了:

@Mapper(componentModel="spring", uses={PersonMapper.class})
public interface OtherMapper

@Mapper(componentModel="spring", uses={PersonMapperDecorator.class})
public interface OtherMapper

但我没有实现otherMapper使用PersonMapperDecorator

共有1个答案

华涵意
2023-03-14

当将MapStruct装饰器与Spring组件模型一起使用时,您只需要与映射器一起工作,而不需要与装饰器一起工作。

在您的示例中,您应该使用

@Mapper(componentModel = "spring", uses = PersonMapper.class)
public interface OtherMapper {
    ...
}

这将用注入的原始映射器(PersonMapper)注入PersonMapperdecorator。

 类似资料:
  • 我正在使用MapStruct从一个JPA实体映射到一个POJO DTO,在一个带有依赖项注入的Spring应用程序中。 ...并且从不为集合中的项调用修饰方法。 有没有一种方法可以让Mapstruct在集合映射中使用decorator方法,而不是在我的decorator中手动编写集合方法(这种方法很有效,但很冗长,并且违背了Mapstruct最初的目的,即不必编写这种代码)?

  • 我目前正在用Spring componentModel设置一个MapStruct映射器,到目前为止一切都很好,各个子映射器可以按照预期进行自动注入。但是,在加载ApplicationContext时,使用修饰映射器会导致以下失败: 创建名为“Example MapperImpl”的bean时出错:通过构造函数参数0表示不满足的依赖关系;嵌套异常是org.springframework.beans.

  • 我不熟悉Mapstruct,在特定用例中遇到问题 因此,如果我的来源属性hotmail.com我的目标属性应该收到“个人”,如果我的来源facebook.com我的目标应该收到“公司”。 我想用表达法,但没法绕过它。我该怎么做?

  • 我对这些技术是新的,所以提前道歉。 我在我的应用程序中使用了springboot、Spring JPA、hibernate和mapstruct。

  • 是否可能在MapStruct中使用不同的映射器?我有这个映射器 是否可以将此实现更改为MapStruct?

  • 我想映射2个模型,其中每个模型都有几乎相同的枚举。让我展示: 第一个模型有枚举: 第二个模型具有枚举: 我有这样的自定义映射方法: 然后我用: 但是你可以得到: 我还创建了枚举映射器,如: 但我不需要单独设置,只希望枚举字段映射到内部映射中。简单地说,当我做枚举时,也应该映射。 谢谢 p、 对不起我的英语,希望我的问题有意义:)