Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.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
如何在JavaSpring引导应用程序中合并两个对象?_Java_Spring_Mapping - Fatal编程技术网

如何在JavaSpring引导应用程序中合并两个对象?

如何在JavaSpring引导应用程序中合并两个对象?,java,spring,mapping,Java,Spring,Mapping,我需要在JavaSpring引导应用程序中合并对象(ProductDTO和Product) ProductDTO不包含Product中的所有字段,我只想映射两个对象中相同的字段,同时保留目标对象中的其他值 我来自C#世界,所以我不知道在Java中实现相同行为的最佳方法是什么。在C#中,我会这样做: var project = new Project { Name = "Project 1", Description = "Description"

我需要在JavaSpring引导应用程序中合并对象(ProductDTO和Product)

ProductDTO不包含Product中的所有字段,我只想映射两个对象中相同的字段,同时保留目标对象中的其他值

我来自C#世界,所以我不知道在Java中实现相同行为的最佳方法是什么。在C#中,我会这样做:

    var project = new Project
    {
        Name = "Project 1",
        Description = "Description"
    };

    var projectDto = new ProjectDTO
    {
        Name = "Project 1 (changed)"
    };

    Mapper.Map(projectDto, project);
执行Map方法后,项目对象仍然包含Description字段的原始值


在JavaSpring中实现这一点的最佳方法是什么?

Springbeans库中有一个BeanUtils类

BeanUtils.copyProperties(source, target);

只要类包含相同的属性名,就会在目标中调用相应的setter。它将忽略目标中不存在的任何属性。

对于您的情况,您可以使用Apache或Spring bean UTIL来完成

org.apache.commons.beanutils.BeanUtils.copyProperties(Object destination, Object source)
org.springframework.beans.BeanUtils.copyProperties(Object source, Object dest)

在这两种情况下,参数的位置都不同。

将对象转换为json,然后合并。看看