Каков подходящий вариант использования для кэша второго уровня Hibernate и @Cacheable в Spring 3.1? - PullRequest
3 голосов
/ 04 августа 2011

Я прочитал о ссылке Hibernate на кэш 2-го уровня Hibernate в здесь , и я прочитал об абстракции Cache в Spring 3.1 в здесь .

После этого я понял, что кэш второго уровня Hibernate очень похож на кэш первого уровня, но его область действия расширена до SessionFactory.И @Cacheable в Spring 3.1 хорошо выглядит для сервисного уровня.

Я хочу привести здесь более подробные примеры использования каждого из них.

  • Когда и где мне следует использовать кэш 2-го уровня Hibernate?
  • Когда и где я должен использовать абстракцию кэша в Spring 3.1?

Спасибо за чтение.

Ответы [ 2 ]

0 голосов
/ 22 декабря 2011

@ Whiteship, это две совершенно разные вещи.

@ Cahceable больше связан с обширными операциями с методами и вычислениями.

Кэш второго уровня Hiberante в основном предназначен для кэширования постоянных данных в SessionFactory.он не включен по умолчанию и значительно повышает производительность.(не только для данных только для чтения, но и для записи данных, если использовать их правильно).

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

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

0 голосов
/ 04 августа 2011

Один из наиболее распространенных вариантов использования кэша второго уровня Hibernate - кэширование статических или очень редко меняющихся эталонных данных. Например, список штатов / провинций и их атрибуты.

Spring @Cacheable полезен везде, где у вас есть метод, который возвращает значение, которое дорого вычислять.

В сценариях кэширования второго уровня @Cacacheable и Hibernate, если данные со временем изменятся, вам следует задуматься о том, какую реализацию кэша следует использовать (например, должен ли это быть распределенный кэш? Как насчет аннулирования кэша?)

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