Кэш второго уровня - это кэш прикладного уровня, в котором будут храниться данные сущностей ....
Кэш запросов - это отдельный кэш, в котором хранятся только результаты запроса ...
Два кеша чаще всего идут вместе ...
Два кеша обеспечивают прозрачную улучшенную производительность, уменьшая количество обращений SQL-операторов к базе данных.
Перед извлечением из кеша запросов для доступа к кешу второго уровня используются кэшированные идентификаторы сущности ...
Если кеш второго уровня содержит данные для данного идентификатора, он возвращает их, если не выдается SQL-запрос для загрузки сущностииз базы данных.
Кеш запросов выглядит как хэш-карта, где ключ состоит из текста запроса и значений параметров, а значение представляет собой список идентификаторов сущностей, соответствующих запросу ...
["From Student where firstName = ?", ["Balram"]]. --> [1,2]]
Некоторые запросы не возвращают сущности, вместо этого они возвращают только примитивные значения ...
В этих случаях сами значения будут сохраняться в запросекеш ....
Перейдите по этой ссылке, чтобы понять ....
"Кэш уровней и кэш запросов"