web_dev
@web_dev

Compare, get difference and merge two complex java-objects generated using «jaxb»?

Здравствуйте, проблема в следующем.
При обновлении()изменении) объекта нужно его сравнивать с актуальным и заменять измененные данные. Просто заменить объект и в итоге его сохранить (в силу опредлых причин) не получится..

Для сравнения объектов пробовал 2 библиотеки, они не смогли обработать объект.
https://github.com/SQiShER/java-object-diff
javers.org

Сравниваю как 2 XML - получаю список с изменениями - и что дальше с этим списком делать, - очень много велосипедов изобретать нужно.

В случае написаия equals методов и компараторв - так-же дело затратное по времени. И если вдруг сгенерируется новая модель после изменений, - не копировать же все ручками...

Подскажет кто-то что-то, идеи?

Спасибо!
  • Вопрос задан
  • 2815 просмотров
Пригласить эксперта
Ответы на вопрос 2
@gurinderu
java developer
А почему просто новый объект не сохранить?
Ответ написан
UbuRus
@UbuRus
Использовать прокси над объектом который изменяется. Пожно посмотреть в hibernate это сделано.

upd. использовать reflection, чтобы сравнивать каждое поле каждого объекта и поля вложенных объектов, при нахождении не equals полей (не объектов) копировать значения из одно объекта в другой. В таком случае получится общее решение для данной задачи.

upd2. spring.io/blog/2014/10/22/introducing-spring-sync
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
23 апр. 2024, в 13:02
3000 руб./за проект
23 апр. 2024, в 12:52
15000 руб./за проект