Ответ 1
Используя функцию ResultSet для загрузки ограниченных данных в память, мы можем предложить решение на Java с помощью Dynamic Comparator. Решение состоит в том, чтобы взять первую запись из каждого набора результатов и отсортировать ее в java и вернуть первый элемент из отсортированных данных.
Подробное решение:
Сначала мы построили программу, которая может дать нам dymanic Comparator на основе критериев, выбранных на экране.
Вторым мы написали одну обертку AggregateResultSet над DAO, которая обертывается через ResultSets из разных разделов. Примечание: эти отдельные ResultSets уже отсортированы по тем же критериям. Затем AggregateResultSet будет предоставлен динамический компаратор.
Этот AggregateResultSet будет иметь структуру данных для первоначального хранения первого элемента каждого набора результатов. Он вернет следующий элемент при вызове next(). Этот элемент будет элементом, который будет первым в соответствии с dynamicComparator. Во время следующего() вызова мы удаляем этот элемент из временной структуры данных и вставляем следующий элемент из того же набора результатов во временную структуру данных. Таким образом, AggregateResultSet вернет данные в ожидаемом порядке путем слияния/хранения/сортировки очень ограниченных данных в Java.
Мы надеемся, что не получим проблем с сравнением, поскольку в сортировке мы имеем в основном числовые/строковые данные.