Java Orika如何在不实例化新目标对象的情况下映射对象

Java Orika如何在不实例化新目标对象的情况下映射对象,java,dto,orika,Java,Dto,Orika,我需要用Orika替换推土机映射,我想知道是否有可能在Orika中执行推土机映射mapper.map(obj1,obj2)?到目前为止,我已经看到,对于destination,您只能指定类类型,而不能指定对象,因此我假设每次都会创建一个新实例。但在这种情况下,我只需要用DTO的一些字段更新以前找到的实体对象。这可能吗?是的,可以将源对象A映射到目标类B——然后Orika将自己实例化B——或者映射到已创建的B实例 // Let Orika create instance of B A source

我需要用Orika替换推土机映射,我想知道是否有可能在Orika中执行推土机映射
mapper.map(obj1,obj2)
?到目前为止,我已经看到,对于destination,您只能指定类类型,而不能指定对象,因此我假设每次都会创建一个新实例。但在这种情况下,我只需要用DTO的一些字段更新以前找到的实体对象。这可能吗?

是的,可以将源对象
A
映射到目标类
B
——然后Orika将自己实例化
B
——或者映射到已创建的
B
实例

// Let Orika create instance of B
A source = new A();
BoundMapperFacade<A, B> mapper = mapperFactory.getMapperFacade(A.class, B.class);
B target = mapper.map(source);

// Create instance of B yourself and let Orika fill it
A source = new A();
B target = new B();
BoundMapperFacade<A, B> mapper = mapperFactory.getMapperFacade(A.class, B.class);
mapper.map(source, target);
//让Orika创建B的实例
A源=新的A();
BoundMapperFacade mapper=mapperFactory.getMapperFacade(A.class,B.class);
B target=mapper.map(源);
//自己创建B的实例,让Orika填充它
A源=新的A();
B目标=新的B();
BoundMapperFacade mapper=mapperFactory.getMapperFacade(A.class,B.class);
mapper.map(源、目标);

在第二种情况下,您可以自己以某种方式设置
目标
实例-Orika只会将您在
类映射
中定义的属性从
A
映射到
B
,为了使内部对象发生这种行为。@ShineedBasheer-Orika将自动实例化所有内部对象,或者如果存在现有对象,它将使用它们。但是我测试了相同的方法,将持久性对象映射为值对象。实际上我想合并这些对象。通过在对象上保留与persistencr相关的状态。对象是复杂的,因为它包含内部对象列表,每个内部对象都具有递归结构。Orika映射出了你所说的物体。但对于内部对象,它正在创建新的objects@ShineedBasheer-我建议您创建一个新问题,提供问题的代码示例(a。仅通过评论很难提供帮助。创建一个新问题。