Мне нужно заменить карты Дозеры Орикой, и я хочу знать, можно ли это делать. Делает нуль mapper.map(obj1, obj2)
в Орике? Я до сих пор видел, что для назначения вы можете указать тип класса, а не объект, поэтому я предполагаю, что каждый экземпляр будет создан каждый раз. Но в этом случае мне нужно только обновить ранее обнаруженный объект объекта с некоторыми полями DTO. Это возможно?Как объекты карты Орики, не создавая экземпляр нового объекта назначения
1
A
ответ
1
Да, можно как карта исходного объект 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);
Во втором случае вы можете настроить на target
экземпляр самостоятельно каким-то образом - Orika будет отображать только свойства из A
в B
, что вы определили в ClassMap
.
Что делать, чтобы получить это поведение во внутреннем объекте. –
@ShineedBasheer - Orika будет автоматически создавать все внутренние объекты или использовать существующие, если они есть. –
Но я тестировал то же самое, что и объект с сохранением объекта с объектом value. На самом деле я хочу объединить этот объект. Сохраняя состояние persistencr на объекте. Объект является сложным по существу, он содержит список внутреннего объекта, и каждый внутренний объект имеет рекурсивную структуру. По мере того, как вы сказали, Орика карты outter объект. Но для внутренних объектов он создает новые объекты. –