当前位置: 首页 > 面试题库 >

使用MapStruct时无法映射属性

马业
2023-03-14
问题内容

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

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

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


问题答案:

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

public class DateMapper {

    public JAXBElement<XMLGregorianCalendar> map(Date value) {

        // conversion here

        return atswer;
    }
}

并使用以下注释:

@Mapper(uses=DateMapper.class)


 类似资料:
  • 我不熟悉Mapstruct,在特定用例中遇到问题 因此,如果我的来源属性hotmail.com我的目标属性应该收到“个人”,如果我的来源facebook.com我的目标应该收到“公司”。 我想用表达法,但没法绕过它。我该怎么做?

  • 我对这些技术是新的,所以提前道歉。 我在我的应用程序中使用了springboot、Spring JPA、hibernate和mapstruct。

  • 错误: 我希望在列表中映射相同的字段名,而不需要另一个单独的方法,就像在另一个项目中使用旧的版本时一样。

  • 我想使用另一个映射器中的一个映射器,并且这两个映射器都使用相同的签名实现相同的方法,因此我得到了“mapping Property的mapping methods found for mapping property” 我已经尝试在接口上实现共享方法,然后在两个映射器上扩展接口,但问题仍然存在 我想我需要使用某种限定词。我在谷歌和官方文档中搜索,但我不知道如何应用这项技术

  • 我需要将源类中的字段值映射到字段属性。我可以使用Mapstruct使用@mapper注释的'expression'参数来完成 有没有其他方法可以不使用“表达式”来进行映射?

  • 我正在使用DTO对象从spring rest控制器中的@RequestBody中检索信息,并在json响应中使用相同的DTO对象。我想完全隐藏一些字段不让响应。 我尝试了,它为未映射的属性返回null,但我的问题是: null FieldBonlyOrderToOrderToMapper 将返回一个OrderDto对象,该对象没有名为(otherFiledA)的字段