首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mapstruct不区分大小写映射

Mapstruct不区分大小写映射
EN

Stack Overflow用户
提问于 2020-04-02 03:05:24
回答 2查看 2.6K关注 0票数 2

在mapstruct中,有没有办法在映射时忽略字段的大小写。假设我想映射以下两个类

代码语言:javascript
运行
复制
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配置为忽略字段的大小写并自动映射它们

EN

回答 2

Stack Overflow用户

发布于 2020-04-05 22:10:06

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

例如:

代码语言:javascript
运行
复制
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 );
    }
}
票数 4
EN

Stack Overflow用户

发布于 2020-04-02 03:10:32

不确定是否可以将mapstruct配置为映射不区分大小写,但您始终可以像这样定义应该映射的内容:

代码语言:javascript
运行
复制
@Mapping(source = "ID", target = "id")
CustomerDetails toCustomerDetails(Customer customer);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60978485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档