Что такое кэш второго уровня в спящем режиме? - PullRequest
24 голосов
/ 13 мая 2010

Что такое кэш второго уровня в спящем режиме?

Ответы [ 2 ]

34 голосов
/ 13 мая 2010

Hibernate поставляется с тремя разными кешами: первый уровень, второй уровень и кеш запросов.

кэш первого уровня является сеансом Hibernate и используется для отслеживания состояния объектов во время текущего сеанса (или единицы работы). Это кэш на уровне транзакций.

кэш второго уровня разделяет состояние объекта в различных сеансах. Это кэш уровня SessionFactory.

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

Рекомендуемые значения

2 голосов
/ 19 мая 2017

Кэш первого уровня включен по умолчанию и работает в области сеанса. Кэш второго уровня находится отдельно от кэша первого уровня, который доступен для глобального использования в области фабрики сеансов. Поэтому кэш второго уровня создается в области фабрики сеансов и доступен для использования во всех сеансах, которые создаются с использованием этой конкретной фабрики сеансов. Это также означает, что после закрытия фабрики сеансов весь кэш, связанный с ним, умирает, а менеджер кеша также закрывается. Всякий раз, когда сеанс гибернации пытается загрузить объект, в самом первом месте он ищет кэшированную копию объекта в кэше первого уровня, а если в кэше первого уровня нет кэшированного объекта, то кэш второго уровня ищется для кэшированного объекта.

...