Предположим, что существует несколько приложений Java, которые совместно используют общий модуль сущности (классы сущности + сопоставления Hibernate XML). В настоящее время объекты не включены для кэширования (нет <cache.../>
элементов в сопоставлениях).
Большинство приложений в основном связаны с редактированием отдельных объектов, поэтому они не могут полагаться на кэш второго уровня.
Сейчас реализовано новое приложение, которое
- Следует использовать те же сопоставления сущностей
- но должен использовать 2-й уровень и кэш запросов.
Как настроить кеш?
Несколько наблюдений:
Я не могу добавить элементы
<cache.../>
в сопоставления, так как это нарушит работу других приложений, которые не настраивают такой кеш и не находятся под моим влиянием:Second-level cache is not enabled for usage [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache]
- Я не могу найти способ активировать объект для кэширования вне его отображения. Настройка области кеша для сущности в
ehcache.xml
не помогает - Даже если бы я мог изменить все остальные приложения и добавить
<cache.../>
к сопоставлениям сущностей, отключить кеш, установивhibernate.cache.use_second_level_cache=false
, не получится, хотя так сказано в http://docs.jboss.org/hibernate, таблица 3.5