Проблемы конфигурации Ecache - PullRequest
1 голос
/ 27 апреля 2011

Мы изучаем возможности использования Ehcache для нашего веб-приложения на двух уровнях

  1. Для Hibernate кэш второго уровня.
  2. Для кэша веб-приложения (jsp)

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

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

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

Все, что мы хотим, чтобы кэш второго уровня Hibernate был активирован для частей пользовательского интерфейса, а для бэк-офиса он не должен входить в игру, но в данный момент это не представляется возможным из-за использования того же слоя DAO, но мы не не хочу дублировать код DAO.

есть ли способ достичь этого. Любое предложение в этом отношении будет очень полезным.

1 Ответ

1 голос
/ 30 апреля 2011

В вашем DAO вам нужно добавить setCacheable (true) в ваш запрос так что в основном вы можете просто добавить логический параметр в ваш метод DAO для передачи в setCacheable (...)

Class YourDao {

 public List loadStuff(Session session, boolean isCacheable) {
   return session.createQuery("from Myentity").setCacheable(isCacheable).list();
 }

}
...