Jan29

【原创】mapstruct expression使用注意事项

Author: mapstruct  Click: 776   Date: 2022.01.29 @ 14:44:42 pm Category: java

mapstruct在expression使用时网上说有如下问题:

https://blog.csdn.net/BruceChao5211/article/details/105430093

http://www.kailing.pub/article/index/arcid/262.html

上面两篇文章原意都是说expression定义的方法会复用到所有同类型的其他属性上。

例如我定义一个toConvert方法,传入的参数类型是String,那么mapstruct代码生成器会自动将映射的原类中的属性都赋予toConvert方法。这样会导致我本意只针对某一个属性执行toConvert方法,结果所有同类型属性都被执行。

两篇文章都没有很好的说明这种情况我们应该怎么处理?

mapstruct官方的issue给出了答案:https://github.com/mapstruct/mapstruct/issues/2700

其实expression在mapstruct的本意就是用来对同类型进行处理的,如果需要指定到某个属性进行某个方法的调用,我们需要采用qualifiedByName来处理。例如如下示例:

    @Mappings({
@Mapping(source = "sex1",target = "sex2",qualifiedByName = {"getBySexEnum"})
})
Student2 toStudent2(Student1 student1);

@Named("getBySexEnum")
default Integer getBySexEnum(SexEnum sexEnum){
return sexEnum.getCode();
}



TAG:   mapstruct expression

    评论
    • 提交

    分类

    标签

    归档

    最新评论

    Abyss在00:04:28评论了
    Linux中ramdisk,tmpfs,ramfs的介绍与性能测试
    shallwe99在10:21:17评论了
    【原创】如何在微信小程序开发中正确的使用vant ui组件
    默一在09:04:53评论了
    Berkeley DB 由浅入深【转自架构师杨建】
    Memory在14:09:22评论了
    【原创】最佳PHP框架选择(phalcon,yaf,laravel,thinkphp,yii)
    leo在17:57:04评论了
    shell中使用while循环ssh的注意事项

    我看过的书

    链接

    其他

    访问本站种子 本站平均热度:8306 c° 本站链接数:29 个 本站标签数:464 个 本站被评论次数:94 次