有没有人知道,如何使用jboss为hibernate配置缓存?
我的明确问题是我正在使用JPA和Jboss。每次我调用JPA方法创建实体和绑定查询。
我的持久性属性是
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
<property name="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.SingletonEhCacheProvider"/>
<property name="hibernate.cache.use_second_level_cache" value="true"/>
<property name="hibernate.cache.use_query_cache" value="true"/>
我正在按照以下方式创建实体管理器:
emf = Persistence.createEntityManagerFactory("pu");
em = emf.createEntityManager();
em = Persistence.createEntityManagerFactory("pu")
.createEntityManager();
是否有任何好的方法来管理实体管理器资源insted每次创建新或任何属性可以设置持久性。记住它是JPA。
答案 0 :(得分:1)
问题不明确,Hibernate有很多second level cache providers,而且它们不是特定于应用程序服务器的。
要启用二级缓存,您需要在Hibernate配置文件hibernate.cfg.xml
中设置以下属性:
<property name="hibernate.cache.use_second_level_cache">true</property>
如果您还想启用查询结果缓存:
<property name="hibernate.cache.use_query_cache">true</property>
然后,在org.hibernate.cache.CacheProvider
属性下声明实现hibernate.cache.provider_class
的类的名称 - 缓存提供程序。例如,要使用JBoss Cache 2:
<property name="hibernate.cache.provider_class">org.hibernate.cache.jbc2.JBossCacheRegionFactory</property>
当然,必须将提供程序的JAR添加到应用程序类路径中。
那就是Hibernate方面。根据所选的缓存提供程序,可能还有其他配置步骤。但正如我所说,有许多二级缓存提供程序:EHCache,JBoss Cache,Infinispan,Hazelcast,Coherence,GigaSpace等。