Я хочу написать универсальную функцию, которая принимает два объекта одного и того же класса сущности и сравнивает разные поля и возвращает список всех изменений, внесенных в конкретные поля, за время.
Один из множестваклассы сущностей будут называться Member следующим образом
public class Member {
String firstName;
String lastName;
String driverLicenseNumber;
Integer age;
LocalDateTime timestamp;
}
В БД у меня есть таблица member_audit, которая заполняется старыми данными всякий раз, когда происходит изменение в таблице-члене с использованием триггеров (аналогично для других сущностей).
Список ресурсов для каждой сущности, которую я бы возвращал, выглядит примерно так:
public class MemberAuditsResource {
private String field;
private LocalDateTime on;
private String changeType;
private String oldValue;
private String newValue;
}
Я могу думать только о написании функции для каждой сущности в отдельности, как это
private List<MembeAuditsResource> memberCompare(Member obj1, Member obj2) {
//Compare every field in both the objects using if else and populate the resource.
}
И затем вызывая вышеуказанную функцию для сравнения каждой пары записей в таблице entity_audit.Код будет очень большим для сравнения каждого поля и умножен на разные объекты.Есть ли лучший и эффективный способ?