使用 MapStruct 时无法映射属性
Posted
技术标签:
【中文标题】使用 MapStruct 时无法映射属性【英文标题】:Can't map property when using 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)”。
我的问题:我应该在哪里取消这种映射方法?
【问题讨论】:
【参考方案1】:我通过编写另一个类解决了这个问题:
public class DateMapper
public JAXBElement<XMLGregorianCalendar> map(Date value)
// conversion here
return atswer;
并使用此注释:
@Mapper(uses=DateMapper.class)
【讨论】:
【参考方案2】:有两种选择:
使您的映射器成为抽象类而不是接口,并直接在映射器类中实现该方法 在另一个类上实现该方法并将该方法声明为您的映射器“已使用”;请参阅reference guide 了解更多详情顺便说一句。如果您使用 XMLGregorianCalendar
或 JAXBElement<XMLGregorianCalendar>
而不是 JAXBElement
原始类型,则映射应该自动完成。
【讨论】:
以上是关于使用 MapStruct 时无法映射属性的主要内容,如果未能解决你的问题,请参考以下文章