【问题标题】:Can't map property when using MapStruct使用 MapStruct 时无法映射属性
【发布时间】:2016-04-12 20:25:09
【问题描述】:

我正在使用 MapStruct 库来映射对象,但出现此错误:

无法将属性“java.util.Date aDate”映射到“javax.xml.bind.JAXBElement ADATE”。考虑声明/实现一个映射方法:“javax.xml.bind.JAXBElement map(java.util.Date value)”。

我的问题:我应该在哪里取消这种映射方法?

【问题讨论】:

    标签: java object-object-mapping mapstruct


    【解决方案1】:

    我通过编写另一个类解决了这个问题:

    public class DateMapper {
    
        public JAXBElement<XMLGregorianCalendar> map(Date value) {
    
            // conversion here
    
            return atswer;
        }
    }
    

    并使用此注释:

    @Mapper(uses=DateMapper.class)
    

    【讨论】:

      【解决方案2】:

      有两种选择:

      • 使您的映射器成为抽象类而不是接口,并直接在映射器类中实现该方法
      • 在另一个类上实现该方法并将该方法声明为您的映射器“已使用”;请参阅reference guide 了解更多详情

      顺便说一句。如果您使用 XMLGregorianCalendarJAXBElement&lt;XMLGregorianCalendar&gt; 而不是 JAXBElement 原始类型,则映射应该自动完成。

      【讨论】:

        猜你喜欢
        • 2018-11-10
        • 2018-02-11
        • 2019-07-04
        • 1970-01-01
        • 2019-08-24
        • 1970-01-01
        • 1970-01-01
        • 2022-10-23
        相关资源
        最近更新 更多