кеширование в зимней спячке на стеклянной рыбе - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь реализовать кэш второго уровня в моем приложении гибернации, но я получаю следующее исключение при попытке получить SessionFactory

On-the-fly creation of JCache Cache objects is not supported [model.entity.Comment]

У меня есть следующий конфиг в моем hibernate.cfg.xml файле

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

А ehcache.xml в src/main/resources

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true"
         monitoring="autodetect" dynamicConfig="true">

    <diskStore path="java.io.tmpdir/ehcache" />

    <defaultCache maxEntriesLocalHeap="10000" eternal="false"
                  timeToIdleSeconds="120" timeToLiveSeconds="120" diskSpoolBufferSizeMB="30"
                  maxEntriesLocalDisk="10000000" diskExpiryThreadIntervalSeconds="120"
                  memoryStoreEvictionPolicy="LRU" statistics="true">
        <persistence strategy="localTempSwap" />
    </defaultCache>
</ehcache>

С зависимостями

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.3.1.Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-ehcache</artifactId>
    <version>5.3.1.Final</version>
</dependency>
<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache-core</artifactId>
    <version>2.6.9</version>
</dependency>

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

@Entity
@Table(name = "comment")
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Comment {

Есть ли что-то очевидное, чего мне здесь не хватает?

EDIT

Я изменил конфиг, добавив это свойство в hibernate.cfg.xml

<property name="net.sf.ehcache.configurationResourceName">ehcache.xml</property>

Это изменило ситуацию, что приятно и создает впечатление, что конфигурация полностью игнорируется.

Однако это не решило проблему, так как теперь выдает:

java.lang.IllegalStateException: Cache provider not started
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...