Hibernate du cache de second niveau avec le Printemps
Je suis l'aide de Printemps + JPA + mise en veille prolongée. Je suis en train d'activer la veille prolongée du cache de second niveau. Dans mon Printemps applicationContext.xml
j'ai:
<prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.SingletonEhCacheProvider</prop>
<prop key="hibernate.cache.provider_configuration_file_resource_path">/ehcache.xml</prop>
Quand je le lance j'obtiens l'erreur:
Caused by: org.hibernate.HibernateException: Could not instantiate cache implementation
at org.hibernate.cache.CacheFactory.createCache(CacheFactory.java:64)
Caused by: org.hibernate.cache.NoCachingEnabledException: Second-level cache is not enabled for usage [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache]
at org.hibernate.cache.NoCacheProvider.buildCache(NoCacheProvider.java:21)
C'est donc se plaindre je n'ai pas de cache de second niveau est activé. Je tente de l'activer en ajoutant à mon applicationContext.xml
:
<prop key="hibernate.cache.use_second_level_cache">true</prop>
Mais toujours pas de joie. J'ai aussi essayé d'ajouter ce point à mon ehcache.xml:
<property name="hibernate.cache.use_second_level_cache">true</property>
Mais cela ne fonctionne toujours pas. La modification de la provider_class
à org.hibernate.cache.EhCacheProvider
n'aide pas:
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
Mes classes d'entité sont annotées pour utiliser la mise en cache
@Cache(usage=CacheConcurrencyStrategy.READ_ONLY)
Alors, comment puis-je activer le cache de second niveau?
Edit: C'est en vertu de la fève:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
Résolu: Depuis que je suis en utilisant LocalEntityManagerFactoryBean
il obtient ses paramètres à partir de META-INF/persistence.xml
. Mes paramètres dans le applicationContext.xml
n'étaient même pas en cours de lecture.
- Dans de haricots qui êtes-vous la définition de ces accessoires?
- entityManagerFactory, qui est la même bean où j'ai mis en hibernation.dialecte, qui Hibernate n'lire
- Je ne sais pas à propos de JPA, nous l'avons sous hibernateProperties dans org.springframework.orm.hibernate3.LocalSessionFactoryBean
- Ouais j'ai essayé de le coller sous hibernateProperties et il a le même problème. En gros, c'est de ne pas lire la "mise en veille prolongée.le cache.provider_class de la propriété".
Vous devez vous connecter pour publier un commentaire.
Je n'ai pas de réponse à cela, mais ce n'est pas évident que l'affiche a trouvé la réponse lui-même. Je suis reposter sa réponse:
Résolu
Depuis que je suis en utilisant
LocalEntityManagerFactoryBean
il obtient ses paramètres à partir deMETA-INF/persistence.xml
. Mes paramètres dans leapplicationContext.xml
n'étaient même pas en cours de lecture.Essayez ceci:
Et si vous utilisez Maven ajouter ceci à votre fichier POM:
Ou télécharger le dernier pot de http://ehcache.org/
Ce lien m'a aidé pour l'utilisation du cache de second niveau avec Hibernate 4