Я хочу сравнить данные между двумя таблицами базы данных для сопоставленных столбцов a2a и сообщить отдельные сопоставленные и несовпадающие записи в Excel. У веб-приложения есть экран для выбора конкретной таблицы и отображения столбцов. На основе пользовательского ввода я формирую динамический запрос и читаю данные из базы данных и сохраняю их в объекте List<List<String>> как для исходной, так и для целевой таблицы.
Моя логика поиска совпадений и несоответствий следующая:
List<List<String>> sourceData= resultObj.getSourceData();List<List<String>> targetData=resultObj.getTargetData();
List<List<String>> matchRecords=new ArrayList<List<String>>(sourceData);matchRecords.retainAll(targetData);
List<List<String>> misMatchRecords=new ArrayList<List<String>>(sourceData);misMatchRecords.removeAll(targetData);
Я хочу улучшить свою логику, чтобы получить точное совпадение и запись о несоответствии, потому что из-за вышеуказанного подхода сообщается о неправильном несоответствии в случае повторяющихся записей ...
Я занимаюсь этим на уровне приложения, так как я хотел создать отчет Excel для исходных записей, целевых записей, записей о совпадениях и записей о несоответствиях. И для каждой операции проверки будет более 5 миллионов записей как в источнике, так и в цели, поэтому это повлияет на базу данных, если я нажму на базу данных 4 раза, чтобы сгенерировать отчеты.




Лучше делать это в базе данных, а не на уровне приложения.