Hibernate de segundo nível ehcache.xml cache, a configuração de cache para entidades não pode ser lido para hibernar

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

Pergunta

Para tornar mais clara e fácil, eu tenho dois projetos: 1. projeto Uma Entidade onde existem todas as classes de entidade neste projeto. 2. Um projeto que contém uma função main () para executar o aplicativo, Meu ehcache.xml é colocado no caminho de classe do projeto.

O meu problema é: Eu posso mudar o elemento defaultCache de ehcache.xml e eu posso ver as alterações do arquivo de log SQL. Mas acho que o Hibernate somente leitura meu defaultCache elemento , porque tudo o que eu mudança na Cache elemento de uma entidade específica de ehcache.xml, não haverá qualquer alteração no o registo de SQL.

Por exemplo: Se eu definir o maxElementsInMemory de defaultCache elemento 0 , o que eu definir o maxElementsInMemory do Cache elemento de uma entidade 100 ou 0 , não haverá qualquer dessa entidade em cache no cache de segundo nível. Se eu definir o maxElementsInMemory de defaultCache elemento 100 , o que eu definir o maxElementsInMemory do Cache elemento de uma entidade 100 ou 0 , há sempre ser essa entidade em cache no cache de segundo nível.

Então, eu acho que talvez o atributo nome do Cache elemento de uma entidade é erroneamente definido e não pode ser lido a partir de hibernação?

Foi útil?

Solução

Eu achei que o meu problema é. Estou usando ehcache como provedor de cache. No ehcache.xml, acho que o elemento defaultCache também é usado para todos os QueryCaches também, se eu não definir o elemento StandardQueryCache. Portanto, não é importante ou não eu definir o maxElementsInMemory de a "0", porque toda a QueryCache estão usando a região de defaultCache. Mas definir o maxElementsInMemory de "0" pode definitivamente ajudar para desativar o cache de nível sencond dessa entidade ao utilizar a função EntityManager.find ().

Outras dicas

Por favor, leia a documentação. Em caso de configuração maxElementsInMemory, um valor de 0 tem um significado especial - unlimited. Então, ao invés de ficar sem cache em tudo, você está caching tudo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top