Несколько настроек кэша второго уровня с одним сопоставлением гибернации

Предположим, что существует несколько приложений Java, которые совместно используют общий модуль сущности (классы сущности + сопоставления Hibernate XML). В настоящее время объекты не включены для кэширования (нет <cache.../> элементов в сопоставлениях).

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

Сейчас реализовано новое приложение, которое

  1. Следует использовать те же сопоставления сущностей
  2. но должен использовать 2-й уровень и кэш запросов.

Как настроить кеш?

Несколько наблюдений:

  1. Я не могу добавить элементы <cache.../> в сопоставления, так как это нарушит работу других приложений, которые не настраивают такой кеш и не находятся под моим влиянием:

    Second-level cache is not enabled for usage [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache]

  2. Я не могу найти способ активировать объект для кэширования вне его отображения. Настройка области кеша для сущности в ehcache.xml не помогает
  3. Даже если бы я мог изменить все остальные приложения и добавить <cache.../> к сопоставлениям сущностей, отключить кеш, установив hibernate.cache.use_second_level_cache=false, не получится, хотя так сказано в http://docs.jboss.org/hibernate, таблица 3.5

person rainer198    schedule 20.12.2011    source источник


Ответы (1)


Похоже, что вы можете использовать элементы <class-cache> для настройки кэширования в hibernate.cfg.xml, а не в сопоставлениях сущностей, см. 3.8. XML-файл конфигурации.

Я думаю, вы можете позволить себе создать собственный hibernate.cfg.xml, который будет использовать существующие сопоставления, а если нет, то есть Configuration.setCacheConcurrencyStrategy() методы, которые также могут помочь.

person axtavt    schedule 20.12.2011
comment
Спасибо, наверное был слепой, но я очень старался найти такой вариант конфигурации. Для тех, кто любит программную настройку Spring с использованием, например. a LocalSessionFactoryBean, соответствующий метод setEntityCacheStrategies(Properties entityCacheStrategies) static.springsource.org/spring/docs/2.5.x/api/org/ - person rainer198; 20.12.2011