2015-06-27 4 views
0

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

Существует ли соответствующая причина, по которой можно согласовать, почему кеш первого уровня (специфичный для сеанса) включен из коробки в спящем режиме, тогда как кэш второго уровня (специфичный для фабрики сеансов) не является?

+0

Это соответствует спецификациям JPA ... Внедрение кэша L2 является необязательным для поставщиков JPA. Однако Hibernate и Eclipse Link реализуют его, но вам нужно вручную настроить это ... Здесь вы можете найти все о кеше http://docs.oracle.com/javaee/6/tutorial/doc/gkjio.html – Ankit

ответ

0

Это согласно спецификации JPA ... Реализация кэша L2 не является обязательным для провайдеров JPA .. Hibernate и Eclipse, Link, однако реализовать его, но вам нужно настроить вручную, что ...

Здесь можно найти все о кэш docs.oracle.com/javaee/6/tutorial/doc/gkjio.html

Примечание: Одним из последствий использования кэша второго уровня в приложении является то, что базовые данные могут иметь изменено в таблицах базы данных, , а значение в кеше не имеет значения, которое называется устаревшим .

1

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

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

Смежные вопросы