本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Mapstruct 不区分大小写的映射

发布于2021-10-08 08:27     阅读(1066)     评论(0)     点赞(20)     收藏(3)


mapstruct 中是否有一种方法可以在映射时忽略字段的大小写。假设我想映射以下两个类

public class Customer {

    private String ID;

    public String getID() {
        return ID;
    }

    public void setID(String iD) {
        this.ID = iD;
    }
}


public class CustomerDetails {

    private String id;

    public String getId() {
        return ID;
    }

    public void setId(String id) {
        this.id = id;
    }

}

MapStruct 不会自动映射字段,因为 getter 方法名称不匹配。有没有办法配置 MapStruct 以忽略字段的大小写并自动映射它们


解决方案


AccessorNamingStrategy可以实现一个自定义,将元素名称小写,从而使其不区分大小写。

例如

public class CaseInsensitiveAccessorNamingStrategy extends DefaultAccessorNamingStrategy {

    @Override
    public String getPropertyName(ExecutableElement getterOrSetterMethod) {
        return super.getPropertyName( getterOrSetterMethod ).toLowerCase( Locale.ROOT );
    }

    @Override
    public String getElementName(ExecutableElement adderMethod) {
        return super.getElementName( adderMethod ).toLowerCase( Locale.ROOT );
    }
}


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/299620/2fca4cd67f54aef32f30/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

20 0
收藏该文
已收藏

评论内容:(最多支持255个字符)