2010-05-04 70 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等。