有人知道如何使用 jboss 配置 hibernate 缓存吗?
我明确的问题是我正在使用 JPA 和 Jboss。每次我调用 JPA 方法时,它都会创建实体并绑定(bind)查询。
我的持久性属性是
<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();
是否有任何好的方法来管理每次创建新的实体管理器资源或可以持久设置任何属性。请记住它是 JPA。
最佳答案
问题不清楚,有很多second level cache providers对于 Hibernate,它们不是特定于应用程序服务器的。
要启用二级缓存,需要在Hibernate配置文件hibernate.cfg.xml
中设置以下属性:
<property name="hibernate.cache.use_second_level_cache">true</property>
如果您还想启用查询结果缓存:
<property name="hibernate.cache.use_query_cache">true</property>
然后,在 hibernate.cache.provider_class
属性下声明实现 org.hibernate.cache.CacheProvider
(缓存提供程序)的类的名称。例如,要使用 JBoss Cache 2:
<property name="hibernate.cache.provider_class">org.hibernate.cache.jbc2.JBossCacheRegionFactory</property>
当然,必须将提供程序的 JAR 添加到应用程序类路径中。
这是针对 Hibernate 端的。根据所选的缓存提供程序,可能还有其他配置步骤。但正如我所说,有很多二级缓存提供程序:EHCache、JBoss Cache、Infinispan , Hazelcast , Coherence , GigaSpace等
关于java - 如何使用jboss在hibernate中配置缓存? ?并在 kumud 控制台中进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2762681/