使用MapStruct

时间:2016-01-08 08:07:36

标签: java object-object-mapping mapstruct

我正在使用MapStruct库来映射对象,但是我收到了这个错误:

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

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

2 个答案:

答案 0 :(得分:9)

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

public class DateMapper {

    public JAXBElement<XMLGregorianCalendar> map(Date value) {

        // conversion here

        return atswer;
    }
}

并使用此注释:

@Mapper(uses=DateMapper.class)

答案 1 :(得分:5)

有两种选择:

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

顺便说一下。如果您使用XMLGregorianCalendarJAXBElement<XMLGregorianCalendar>而不是JAXBElement原始类型,则应自动完成映射。