2010-05-04 109 views
1

是否有人知道,如何配置缓存与jboss休眠?如何用jboss配置Hibernate的缓存? ?并在kumud控制台中测试?

我明确的问题是我使用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。

回答

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等。