Java Mapstruct不区分大小写映射

Java Mapstruct不区分大小写映射,java,mapstruct,object-object-mapping,Java,Mapstruct,Object Object Mapping,mapstruct中是否有一种方法可以在映射时忽略字段的大小写。假设我想映射以下两个类 public class Customer { private String ID; public String getID() { return ID; } public void setID(String iD) { this.ID = iD; } } public class CustomerDetails {

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配置为忽略字段的大小写并自动映射它们

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

@Mappingsource=ID,target=ID 客户详情客户详情客户;
不确定是否可以将mapstruct配置为不区分大小写的映射,但您始终可以这样定义应映射的内容:

@Mappingsource=ID,target=ID 客户详情客户详情客户; 可以实现一个自定义AccessorNamegstrategy,该策略将使元素名小写,从而使其不区分大小写

e、 g

可以实现一个自定义AccessorNamegstrategy,该策略将使元素名小写,从而使其不区分大小写

e、 g


目前我们正在这样做,但问题是我们需要在xml和json类之间映射数百个字段。试图找出是否有一种更简单的方法,同时也希望确保我们不会遗漏任何元素目前我们正在这样做,但问题是我们需要在xml和json类之间映射数百个字段。试图找出是否有一种更简单的方法来实现这一点,同时也希望确保我们不会遗漏任何元素为什么属性的名称不符合Java的标准命名约定?一些类是从XSD生成的,其中一些字段是首字母缩略词为什么属性的名称不符合Java的标准命名约定约定?一些类是从XSD生成的,其中一些字段是首字母缩写Hanks Filip!我将添加几个链接。关于自定义AccessorNamegstrategy的文档参考:MapStruct repo上的示例项目:谢谢Filip!我将添加几个链接。关于自定义AccessorNamegstrategy的文档参考:MapStruct repo上的示例项目:
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 );
    }
}