Если мое понимание верное, приложение выбрало фильтры для отчетов. Эти условия фильтрации передаются в приложение в HTTP Servlet запрос, и вы хотите, чтобы выбрать между
- предоставления запроса в < QueryString> и отображение полей в jrxml файле проекта, с только требуется, когда параметры состояния передается от Java
- осуществляет извлечение содержания отчета внутри Java и передать Java Beans в jrmxl файл
Я хотел бы предложить, чтобы согласовать с общей стратегией проектирования фоновым проекта для извлечения данных из БД.
Если ваши отчеты относительно просты, и приложение уже имеет полноценную реализацию ORM, используйте второй подход. Это будет относительно просто в начальной реализации, а также в реализации любых будущих запросов на изменение.
Если это не так и SQL-запросы для генерации отчетов динамичны и довольно сложный, я бы предложил продолжить вариант 2.
- Написать запросы (строка Builder) для извлечения данных отчета в Java или сохранить их в качестве функций/процедур в БД
- заполнить коллекцию Java Beans и передать его в JasPer Report Engine
любой подход не может иметь какой-либо существенной разницы производительности до тех пор, как приложение работает на сервер приложений с достойными спецификациями. Если производительность критическая, а текущие ресурсы ограничены, я бы предложил - запускать отчеты как отдельное приложение в отдельном JVM - отдельном сервере отчетов и приложениях db и использовать инструменты репликации БД для данных синхронизации по ним. Создание огромных сложных отчетов, как правило, замедляет скорость работы приложения.
Спасибо за ценные вклады :) Я отредактировал вопрос. –