Группировка большого числа записей более 100000

Jmix version: 2.8.1, Jmix Studio: 2.8.0-253.

Здравствуйте.

Мне нужно группировать большое количество записей > 100000. Когда загружается много записей, то может быть ошибка java.lang.OutOfMemoryError: Java heap space. Постраничная загрузка не подходит, т к группировка происходит на каждой странице отдельно, а по требованиям нужно группировать все записи, которые возвращает запрос с фильтрами. Для группировки использую Grouping Data Grid, но он выгружает все данные в оперативную память и может произойти утечка (если не использовать постраничную загрузку). Посоветуйте пожалуйста что можно сделать: увеличить размер кучи или группировать данные на уровне БД (но тогда как использовать Grouping Data Grid?).

Добрый день, Сергей!

GroupDataGrid по умолчанию добавляет сортировку по полям из группировки (см. #sortByGroupEnabled). Таким образом обеспечивается правильный порядок данных по группам при постраничном выводе. Если данных много, то компонент отображает неполную группу до скролла, которая продолжится на следующей странице.

В таком случае GroupDataGrid использовать не получится. При таком подходе скорее всего нужно будет создавать свою DTO для правильного отображения данных а может и иерархию DTO (для группы и для обычной строки). Здесь уже поможет TreeDataGrid.