我实现了一个装饰器以自定义实体的映射,比方说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
使用非默认值时componentModel,必须将其用于所有映射器。特别是如果您想重用它们。否则,特定组件将不知道如何注入和创建映射器。
因此,解决您的问题的方法是
@Mapper(componentModel = "cdi")
@DecoratedWith(MappingDecoratorA .class)
public interface MapperA {
}
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。