Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有相关名称的ModelMapper属性字段(以驼峰为例)_Java_Mapper_Modelmapper - Fatal编程技术网

Java 具有相关名称的ModelMapper属性字段(以驼峰为例)

Java 具有相关名称的ModelMapper属性字段(以驼峰为例),java,mapper,modelmapper,Java,Mapper,Modelmapper,转换源领域中具有源属性名称内容的实体时出错,该实体包含驼峰形案例部分 示例:在源模型中,我有一个字符串字段edgeId,在目标模型中,我有一个长id的字段,匹配为true。这将生成一个异常,java.lang.NumberFormatException,即如何忽略此匹配 这在使用其他属性名称时发生 package br.com.combinado; import org.modelmapper.ModelMapper; public class TestModelMapper {

转换源领域中具有源属性名称内容的实体时出错,该实体包含驼峰形案例部分

示例:在源模型中,我有一个字符串字段edgeId,在目标模型中,我有一个长id的字段,匹配为true。这将生成一个异常,java.lang.NumberFormatException,即如何忽略此匹配

这在使用其他属性名称时发生

package br.com.combinado;

import org.modelmapper.ModelMapper;

public class TestModelMapper {

    public static void main(String[] args) {
        Target target = new Target();
        target.setTesteBatataFrita("batataFrinta");

        ModelMapper mapper = new ModelMapper();

        Source source = mapper.map(target, Source.class);
        System.out.println(source);
    }

    private static class Source {

        private Long frita;

        public Long getFrita() {
            return frita;
        }

        public void setFrita(Long frita) {
            this.frita = frita;
        }

    }

    private static class Target {
        private String testeBatataFrita;

        public String getTesteBatataFrita() {
            return testeBatataFrita;
        }

        public void setTesteBatataFrita(String testeBatataFrita) {
            this.testeBatataFrita = testeBatataFrita;
        }

    }

}

我通过添加一个添加SourceNameTokenizer解决了这个问题

mapper.getConfiguration().setSourceNameTokenizer(new NameTokenizer() {
    public String[] tokenize(String name, NameableType nameableType) {
        return new String[] { name };
    }
});

@Bean
    public ModelMapper modelMapper() {
        final ModelMapper mapper = new ModelMapper();
        mapper.getConfiguration().setDestinationNameTokenizer((name, nameableType) -> new String[] { name });
        mapper.getConfiguration().setSourceNameTokenizer((name, nameableType) -> new String[] { name });
        return mapper;
    }