Самый дешевый (и не очень неэффективный способ кэширования данных) в веб-приложении Java EE - это использовать объект Session, как вы и собираетесь. Это неэффективно, так как требует, чтобы разработчик гарантировал, что кеш не пропускает память; поэтому разработчик должен аннулировать ссылку на объект, если объект больше не нужен.
Однако, даже если вы хотите реализовать кеш бедного человека, кэширование 20 МБ данных не рекомендуется, так как оно плохо масштабируется. Вопрос масштабируемости возникает, когда несколько пользователей используют одну и ту же функциональность приложения, и в этом случае объем данных составляет 20 МБ.
Вам лучше возвращать разбитые на страницы "наборы данных" в форме JSON на основе шаблона проектирования ValueList . Каждый запрос запроса данных приводит к частичному извлечению данных, которые затем отправляются клиенту по проводной связи. Таким образом, вам никогда не придется кэшировать полные результаты выполнения запроса, а также вы можете вернуть частичные наборы данных. Это зависит только от вас, хотите ли вы кешировать данные; обычно кэширование выполняется для больших наборов данных, которые используются снова и снова.