Java: сравнить два объекта, имеющих около 10 или более свойств - PullRequest
0 голосов
/ 06 февраля 2020

Выборка данных из RestUI, который поступает в com.ow.vo.computer.ApplicationUsage.

Выборка данных из базы данных.

Сравните каждое содержимое, как указано ниже

public void compare(com.ow.vo.computer.ApplicationUsage src, ApplicationUsage dest) {
    if(!Objects.equals(src.getApplicationItemCost(), dest.getApplicationItemCost())) {
        dest.setApplicationItenCost(src.getApplicationItemCost);
    }
    if(!Objects.equals(src.getAvgUsageTime(), dest.getAvgUsageTime())) {

    }
    if(!Objects.equals(src.getBundleApplicationId(), dest.getBundleApplicationId())) {

    }
    if(!Objects.equals(src.getBundleApplicationName(), dest.getBundleApplicationName())) {

    }
    if(!Objects.equals(src.getDiscoveredDate(), dest.getDiscoveredDate())) {

    }
 .
 . 
 .

Если какое-либо обновление, то только обновить его в базе данных, иначе нет.

Структура sr c и dest практически одинакова с разницей в типах дат, таких как Source имеют String и dest имеют Date.

Может ли кто-нибудь предложить более элегантный способ или шаблон проектирования для обработки этой ситуации вместо сравнения каждого поля по одному.

Business Logi c: (Загрузить фрагмент из базы данных для 100 записей нажмите rest api для 100 записей. Сравните каждую запись 1 на 1 (все свойства в этом 1). Если разницы нет, ничего не делайте. Если разница, объедините ее, если новая Создать запись, если не существует в Rest API, удалить из базы данных тоже.)

...