使用 MapStruct 时无法映射 属性
Can't map property when using MapStruct
我正在使用 MapStruct 库来映射对象,但出现此错误:
无法将 属性 "java.util.Date aDate" 映射到 "javax.xml.bind.JAXBElement ADATE"。考虑declare/implement一个映射方法:"javax.xml.bind.JAXBElement map(java.util.Date value)".
我的问题:我应该在哪里删除这个映射方法?
我通过写另一个 class:
解决了这个问题
public class DateMapper {
public JAXBElement<XMLGregorianCalendar> map(Date value) {
// conversion here
return atswer;
}
}
并使用此注释:
@Mapper(uses=DateMapper.class)
有两种选择:
- 使您的映射器成为抽象的 class 而不是接口,并直接在映射器中实现该方法 class
- 在另一个 class 上实现该方法,并由您的映射器将此方法声明为 "used";有关详细信息,请参阅 reference guide
顺便说一句。如果您使用 XMLGregorianCalendar
或 JAXBElement<XMLGregorianCalendar>
而不是 JAXBElement
原始类型,映射应该自动完成。
我正在使用 MapStruct 库来映射对象,但出现此错误:
无法将 属性 "java.util.Date aDate" 映射到 "javax.xml.bind.JAXBElement ADATE"。考虑declare/implement一个映射方法:"javax.xml.bind.JAXBElement map(java.util.Date value)".
我的问题:我应该在哪里删除这个映射方法?
我通过写另一个 class:
解决了这个问题public class DateMapper {
public JAXBElement<XMLGregorianCalendar> map(Date value) {
// conversion here
return atswer;
}
}
并使用此注释:
@Mapper(uses=DateMapper.class)
有两种选择:
- 使您的映射器成为抽象的 class 而不是接口,并直接在映射器中实现该方法 class
- 在另一个 class 上实现该方法,并由您的映射器将此方法声明为 "used";有关详细信息,请参阅 reference guide
顺便说一句。如果您使用 XMLGregorianCalendar
或 JAXBElement<XMLGregorianCalendar>
而不是 JAXBElement
原始类型,映射应该自动完成。