Кеш запросов в JPA 2.1 и Hibernate - PullRequest
0 голосов
/ 26 февраля 2019

Hibernate имеет двухуровневый кеш и кеш запросов.Но, как я знаю, в JPA есть только два уровня кеша.Также в других ORM я видел кеш запросов.Может я где то не прав.Поэтому я хочу спросить вас.Как насчет кеша запросов?Это особенность некоторых ORM или это в JPA?А если это в JPA, то где?

1 Ответ

0 голосов
/ 26 февраля 2019

Кэш второго уровня - это кэш прикладного уровня, в котором будут храниться данные сущностей ....

Кэш запросов - это отдельный кэш, в котором хранятся только результаты запроса ...

Два кеша чаще всего идут вместе ...

Два кеша обеспечивают прозрачную улучшенную производительность, уменьшая количество обращений SQL-операторов к базе данных.

Перед извлечением из кеша запросов для доступа к кешу второго уровня используются кэшированные идентификаторы сущности ...

Если кеш второго уровня содержит данные для данного идентификатора, он возвращает их, если не выдается SQL-запрос для загрузки сущностииз базы данных.

Кеш запросов выглядит как хэш-карта, где ключ состоит из текста запроса и значений параметров, а значение представляет собой список идентификаторов сущностей, соответствующих запросу ...

["From Student where firstName = ?", ["Balram"]].  --> [1,2]]

Некоторые запросы не возвращают сущности, вместо этого они возвращают только примитивные значения ...

В этих случаях сами значения будут сохраняться в запросекеш ....

Перейдите по этой ссылке, чтобы понять ....

"Кэш уровней и кэш запросов"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...