org.hibernate.cache.CacheException: создание объектов кэша JCache на лету не поддерживается в HIBERNATE - PullRequest
0 голосов
/ 31 августа 2018

Я использую hibernate 5.3.3, hibernate-ehcache 5.3.1 & ehcahe 3.2. с Java 8.

Я добавил следующие конфигурации в hibernate.cfg.xml

<property name="cache.use_second_level_cache">true</property>
<property name="cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory
</property>
<property name="hibernate.cache.use_query_cache">true</property>

Я также добавил следующие аннотации в свой класс сущностей.

@Cacheable
@Cache(usage=CacheConcurrencyStrategy.READ_ONLY)

Я искал в интернете, но не нашел ответов на следующее исключение.

`Caused by: org.hibernate.cache.CacheException: On-the-fly creation of JCache Cache objects is not supported [default-update-timestamps-region]
    at org.hibernate.cache.ehcache.internal.EhcacheRegionFactory.createCache(EhcacheRegionFactory.java:106)
    at org.hibernate.cache.ehcache.internal.EhcacheRegionFactory.getOrCreateCache(EhcacheRegionFactory.java:100)
    at org.hibernate.cache.ehcache.internal.EhcacheRegionFactory.createTimestampsRegionStorageAccess(EhcacheRegionFactory.java:86)
    at org.hibernate.cache.spi.support.RegionFactoryTemplate.buildTimestampsRegion(RegionFactoryTemplate.java:70)
    at org.hibernate.cache.internal.EnabledCaching.<init>(EnabledCaching.java:80)
    at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:33)
    at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:24)
    at org.hibernate.service.spi.SessionFactoryServiceInitiator.initiateService(SessionFactoryServiceInitiator.java:30)
    at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.initiateService(SessionFactoryServiceRegistryImpl.java:68)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
    ... 21 more`

1 Ответ

0 голосов
/ 02 сентября 2018

EhCacheRegionFactory используется для подключения к Ehcache 2.x. Вы сказали, что используете Ehcache 3.2, и это хорошо. Но это также означает, что вы должны использовать org.hibernate.cache.jcache.JCacheRegionFactory для его настройки.

...