Java 二级缓存:Spring3.2.2+;Hibernate 4.2.0 Infinispan
正在尝试使用Spring和Hibernate设置二级缓存Java 二级缓存:Spring3.2.2+;Hibernate 4.2.0 Infinispan,java,spring,hibernate,jpa,infinispan,Java,Spring,Hibernate,Jpa,Infinispan,正在尝试使用Spring和Hibernate设置二级缓存 <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="jpaVendorAdapter">
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" p:database="${jdbc.databaseType}" p:generateDdl="true"
p:showSql="true"/>
</property>
<property name="jpaProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.enable_lazy_load_no_trans">true</prop>
<prop key="hibernate.ejb.naming_strategy">com.antaresgames.ad.lobby.repository.FixedDefaultComponentSafeNamingStrategy</prop>
<prop key="hibernate.transaction.manager_lookup_class">org.hibernate.cache.infinispan.tm.HibernateTransactionManagerLookup</prop>
<prop key="hibernate.transaction.jta.platform">org.hibernate.service.jta.platform.internal.JBossStandAloneJtaPlatform</prop>
<prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</prop>
<!--https://docs.jboss.org/author/display/ISPN/Using+Infinispan+as+JPA-Hibernate+Second+Level+Cache+Provider-->
<!--CACHE CONFIGURATION-->
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.use_query_cache">false</prop>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.infinispan.JndiInfinispanRegionFactory</prop>
<prop key="hibernate.cache.infinispan.cachemanager">java:Cachemanager</prop>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.infinispan.InfinispanRegionFactory</prop>
<prop key="hibernate.cache.infinispan.statistics">true</prop>
<!--https://docs.jboss.org/author/display/ISPN/Eviction-->
<!--<prop key="hibernate.cache.infinispan.entity.eviction.strategy">LIRS</prop>-->
<!--https://docs.jboss.org/author/display/ISPN/Eviction+Examples-->
<!--<prop key="hibernate.cache.infinispan.entity.eviction.wake_up_interval">2000</prop>-->
<!--https://docs.jboss.org/author/display/ISPN/Eviction-->
<!--<prop key="hibernate.cache.infinispan.entity.eviction.max_entries">5000</prop>-->
<!--max time entity is living in memory in idle-->
<!--<prop key="hibernate.cache.infinispan.entity.expiration.max_idle">60000</prop>-->
</props>
</property>
</bean>
当获取存储库的实体时,它每次都在进行查询
有什么建议吗?您应该只需要以下与缓存/tm相关的属性:
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.infinispan.InfinispanRegionFactory</prop>
<prop key="hibernate.transaction.jta.platform">org.hibernate.service.jta.platform.internal.JBossStandAloneJtaPlatform</prop>
<prop key="hibernate.cache.infinispan.cfg">infinispan.xml</prop>
org.hibernate.cache.infinispan.InfinispanRegionFactory
org.hibernate.service.jta.platform.internal.jbossstandaronejtaplatform
infinispan.xml
请注意,根据您的需要/配置,您可能需要将InfinispanRegionFactory替换为JNDinisPanRegionFactory。尝试删除
hibernate.transaction.manager\u lookup\u class
和hibernate.transaction.factory\u class
。那些是旧房子。如果使用Hibernate4+,您只需要Hibernate.transaction.jta.platform
。另外,您已经定义了两次hibernate.cache.region.factory\u类。删除带有org.hibernate.cache.infinispan.InfinispanRegionFactory的文件
,并删除hibernate.cache.infinispan.cachemanager
属性
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.infinispan.InfinispanRegionFactory</prop>
<prop key="hibernate.transaction.jta.platform">org.hibernate.service.jta.platform.internal.JBossStandAloneJtaPlatform</prop>
<prop key="hibernate.cache.infinispan.cfg">infinispan.xml</prop>