Permettant Hibernate cache de second niveau avec JPA sur JBoss 4.2
Question
Quelles sont les étapes nécessaires pour activer la veille prolongée du cache de second niveau, lors de l'utilisation de l'API Java Persistence (entités annotées)?Comment puis-je vérifier que cela fonctionne?Je suis à l'aide de JBoss 4.2.2.GA.
À partir de la documentation Hibernate, il semble que j'ai besoin d'activer le cache et spécifier un fournisseur de cache dans persistence.xml, comme par exemple:
<property name="hibernate.cache.use_second_level_cache"
value="true" />
<property name="hibernate.cache.provider_class"
value="org.hibernate.cache.HashtableCacheProvider" />
Quoi d'autre est nécessaire?Dois-je ajouter @Cache annotations à mon entités JPA?
Comment puis-je savoir si le cache est en train de travailler?J'ai essayé d'accéder aux statistiques du cache après l'exécution d'une Requête, mais Les statistiques.getSecondLevelCacheStatistics renvoie la valeur null, peut-être parce que je ne sais pas ce que la "région" nom à utiliser.
La solution
Je crois que vous devez ajouter le cache des annotations à dire hibernate comment utiliser le cache de second niveau (lecture seule, lecture-écriture, etc).Cela a été le cas dans mon application (à l'aide de printemps / traditionnel hibernate et ehcache, de sorte que votre kilométrage peut varier).Une fois les caches ont été indiqués, j'ai commencé à voir les messages qu'ils étaient dans l'utilisation de hibernate.
Autres conseils
Suivi:à la fin, après l'ajout d'annotations, j'ai de travailler avec EhCache, c'est à dire
<property name="hibernate.cache.provider_class"
value="net.sf.ehcache.hibernate.EhCacheProvider" />