9

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

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

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

4

2 回答 2

24

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

public class DateMapper {

    public JAXBElement<XMLGregorianCalendar> map(Date value) {

        // conversion here

        return atswer;
    }
}

并使用此注释:

@Mapper(uses=DateMapper.class)
于 2016-01-08T08:23:13.113 回答
10

有两种选择:

  • 使您的映射器成为抽象类而不是接口,并直接在映射器类中实现该方法
  • 在另一个类上实现该方法并将该方法声明为您的映射器“使用”;有关详细信息,请参阅参考指南

顺便提一句。XMLGregorianCalendar如果您使用或JAXBElement<XMLGregorianCalendar>代替JAXBElement原始类型,映射应该自动完成。

于 2016-01-08T08:26:45.470 回答