Domanda

Quali sono i passaggi necessari per abilitare la cache di secondo livello di Hibernate, quando si utilizza l'API Java Persistence (entità annotate)?Come posso verificare che funzioni?Sto usando JBoss 4.2.2.GA.

Dalla documentazione di Hibernate, sembra che sia necessario abilitare la cache e specificare un provider di cache persistenza.xml, Piace:

<property name="hibernate.cache.use_second_level_cache"
          value="true" /> 
<property name="hibernate.cache.provider_class" 
          value="org.hibernate.cache.HashtableCacheProvider" /> 

Cos'altro è richiesto?Devo aggiungere? @Cache annotazioni alle mie entità JPA?

Come posso sapere se la cache funziona?Ho provato ad accedere alle statistiche della cache dopo aver eseguito una query, ma Statistics.getSecondLevelCacheStatistics restituisce null, forse perché non so quale nome di "regione" utilizzare.

È stato utile?

Soluzione

Credo che sia necessario aggiungere le annotazioni della cache per indicare all'ibernazione come utilizzare la cache di secondo livello (sola lettura, lettura-scrittura, ecc.).Questo era il caso della mia app (utilizzando l'ibernazione primaverile/tradizionale e ehcache, quindi il tuo chilometraggio può variare).Una volta indicate le cache, ho iniziato a vedere i messaggi che indicavano che erano in uso dall'ibernazione.

Altri suggerimenti

Seguito:alla fine, dopo aver aggiunto le annotazioni, riesco a farlo funzionare con EhCache, ad es.

<property name="hibernate.cache.provider_class" 
          value="net.sf.ehcache.hibernate.EhCacheProvider" />
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top