Hibernate secondo livello di cache ehcache.xml, l'impostazione per le entità della cache non può essere letto per il letargo

StackOverflow https://stackoverflow.com/questions/934720

Domanda

Per rendere più chiaro e facile, ho due progetti: 1. Entità progetto in cui ci sono tutte le classi di entità in questo progetto. 2. Un progetto che contiene una funzione main () per eseguire l'applicazione, My ehcache.xml si trova nel percorso di classe di questo progetto.

Il mio problema è il seguente: Posso cambiare il defaultCache del ehcache.xml e posso vedere le modifiche dal file di registro di SQL. Ma penso che l'Hibernate letto solo il mio defaultCache elemento, perché qualsiasi cambio nella della cache elemento di un'entità specifica di ehcache.xml, non ci sarà alcuna modifica in il registro di SQL.

Ad esempio: Se ho impostato il maxElementsInMemory di defaultCache elemento 0 , qualsiasi cosa ho impostato il maxElementsInMemory del di cache elemento di un'entità a 100 o 0 , non ci sarà alcun quell'entità cache al secondo livello di cache di. Se ho impostato il maxElementsInMemory di defaultCache elemento 100 , qualsiasi cosa ho impostato il maxElementsInMemory del di cache elemento di un'entità di 100 o 0 , ci sono sempre che cache entità nella seconda cache di livello.

Quindi penso che forse l'attributo name del della cache elemento di un'entità è erroneamente impostato e non può essere letto da Hibernate?

È stato utile?

Soluzione

Ho trovato dove il mio problema. Sto utilizzando EHCache come fornitore di cache. Nel ehcache.xml, penso che l'elemento defaultCache è utilizzato anche per tutti gli QueryCaches troppo, se non ho impostato l'elemento standardQueryCache. Quindi non è importante se o non ho impostato il maxElementsInMemory di "0", perché tutto il QueryCache stanno usando la regione defaultCache. Ma l'impostazione del maxElementsInMemory di "0" può sicuramente aiutare a disattivare la cache di livello sencond di tale entità quando si usa la funzione EntityManager.find ().

Altri suggerimenti

Si prega di leggere la documentazione. In caso di impostazione maxElementsInMemory, un valore di 0 ha un significato speciale - unlimited. Così, invece di ottenere nessuna cache a tutti, sono in caching tutto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top