I’m using Spring 3.1.1.RELEASE, JUnit 4.8.1, and Hibernate 4.1.5.Final. I’m trying to test whether my second level cache is configured correctly, but am unsure of how to do it. I’m using the JPA entity manager, configured in Spring like so …
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="jpaDialect">
<bean class="org.collegeboard.springboard.core.jpa.HibernateJpaDialect">
<property name="flushMode" value="COMMIT"/>
</bean>
</property>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/>
</property>
<property name="persistenceXmlLocation" value="classpath:META-INF/test-persistence.xml"/>
<property name="persistenceUnitName" value="orgTestingDatabase"/>
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="sharedEntityManager" class="org.springframework.orm.jpa.support.SharedEntityManagerBean">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
I have configured my second level cache like so …
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<!-- Collect stats, this is for testing if the cache is working -->
<property name="hibernate.generate_statistics">true</property>
How do I access a org.hibernate.stat.Statistics object given my javax.persistence.EntityManager ? Evidently, I need to access a SessionFactory somehow, but I can’t figure out the appropriate series of casts.
Thanks, – Dave
I was wrestling with this in the past: Exposing Hibernate (cache) statistics through JMX with Spring in Tomcat
If you simply want to know “if it’s working” you could enable Hibernate debug logging for
org.hibernate.stat.Statisticsororg.hibernate.stat.*. However, if you (like I) want to have a cache statistics report you could do something like the following. This exposes a JMX bean with all the stats:The app context: