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 методов и компараторв - так-же дело затратное по времени. И если вдруг сгенерируется новая модель после изменений, - не копировать же все ручками...

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

Спасибо!
  • Вопрос задан
  • 2831 просмотр
Пригласить эксперта
Ответы на вопрос 1
UbuRus
@UbuRus
Использовать прокси над объектом который изменяется. Пожно посмотреть в hibernate это сделано.

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

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

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

Похожие вопросы