开发者社区> 问答> 正文

在其他映射中使用的Mapstructs抽象装饰器导致异常

我实现了一个装饰器以自定义实体的映射,比方说MappingDecoratorA,它是一个抽象类,并实现了mapstructs的MapperA接口。

public abstract class MappingDecoratorA implements MapperA {
...}
@Mapper
@DecoratedWith(MappingDecoratorA .class)
public interface MapperA {

在另一个映射中,我使用MapperA,比如说MappingB,它使用cdi

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

Mapstructs为MapperA生成两个实现,即MapperAImpl和MapperAImpl_。在我的情况下,注入机制不知道使用哪种实现。结果是一个模棱两可的异常监听这两个实现。

mapstruct是否支持我的问题的解决方案?

问题来源:Stack Overflow

展开
收起
montos 2020-03-24 16:55:22 790 0
1 条回答
写回答
取消 提交回答
  • 使用非默认值时componentModel,必须将其用于所有映射器。特别是如果您想重用它们。否则,特定组件将不知道如何注入和创建映射器。

    因此,解决您的问题的方法是

    @Mapper(componentModel = "cdi")
    @DecoratedWith(MappingDecoratorA .class)
    public interface MapperA {
    }
    

    回答来源:Stack Overflow

    2020-03-24 16:55:48
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
继承与功能组合 立即下载
建立联系方法之一 立即下载
JAVA反射原理以及一些常见的应用 立即下载