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

在其他映射中使用的Mapstructs抽象修饰符导致歧义异常

洪胤
2023-03-14

我实现了一个装饰器来定制实体的映射,比如说MappingDecoratorA,它是一个抽象类,实现了MapStructs的MapperA接口

public abstract class MappingDecoratorA implements MapperA {
...}
@Mapper
@DecoratedWith(MappingDecoratorA .class)
public interface MapperA {
@Mapper(uses = { MapperA.class},
    componentModel = "cdi")
public interface MapperB{

共有1个答案

柴声
2023-03-14

当使用非默认componentmodel时,必须将其用于所有映射器。尤其是如果你想重用它们。否则,特定组件将不知道如何注入和创建映射器。

所以解决问题的方法是

@Mapper(componentModel = "cdi")
@DecoratedWith(MappingDecoratorA .class)
public interface MapperA {
}
 类似资料:
  • 按照第二个链接中包含的示例,我已经测试了: 但我没有实现使用。

  • 本文向大家介绍抽象类能使用 final 修饰吗?相关面试题,主要包含被问及抽象类能使用 final 修饰吗?时的应答技巧和注意事项,需要的朋友参考一下 不能,定义抽象类就是让其他类继承的,如果定义为 final 该类就不能被继承,这样彼此就会产生矛盾,所以 final 不能修饰抽象类,如下图所示,编辑器也会提示错误信息:

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

  • 给定此代码: 我希望的类型为然而,它似乎保留了可选的修饰符

  • 问题内容: 在Java中,有一种做法是声明每个变量(局部变量或类),如果参数确实存在,则声明参数final。 尽管这使代码更加冗长,但是这有助于简化代码的读取/抓取,并且由于意图被明确标记,因此还可以防止错误。 您对此有何想法,您会怎么做? 问题答案: 我认为这都与良好的编码风格有关。当然,你可以编写出色而健壮的程序,而无需在任何地方使用很多修饰符,但是当你考虑一下时… 将所有不应该改变的东西加进

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