如何使用jboss在hibernate中配置缓存? ?在kumud控制台中进行测试?

时间:2010-05-04 03:42:30

标签: java hibernate orm caching jboss

有没有人知道,如何使用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。

1 个答案:

答案 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,InfinispanHazelcastCoherenceGigaSpace等。