Короче суть проблемы такова: есть база с документами в которых указана дата окончания обработки (deadline) и подразделение, ответственное за обработку. Надо организовать рассылку по подразделениям со списками просроченных документов. По вьюхе отбираются документы по DateRange от вчера и ранее, которые и являются просроченными. Проблема в том, что у одного документа может быть сразу несколько ответственных подразделений (соответственно, multivalue поле) и отобрать во вьюхе сразу коллекцию просроченных документов по подразделению никак не получилось.
Решение
Создан Java-агент который отбирает просроченные документы и записывает их в базу Apache Derby, она же JavaDb в in-memory mode, т.е. на диск ничего не пишется, всё в оперативке. Попутно, в процессе обработки отобранных из вьюхи документов, для документов с несколькими подразделениями создаются дубликаты, таким образом, что в базе сохраняются несколько копий документов с одним ответственным подразделением для каждой копии (как-то завернул... надеюсь мысль понятна). После этого, имея справочник подразделений, просто последовательно селектим из этой базы документы по каждому подразделению, создаём соответствующий отчёт в Excel и отправляем его по почте.
Результат
примерно 350 подразделений, около 30 тыс. просроченных документов, на выходе около 250 отчётов. Затрачиваемое на всё это время примерно 3 минуты.
Проблема решена. Попутно были опробованы db40, ObjectDb, Berkeley Db, H2, Derby. Если кому про это интересно, могу рассказать отдельно.