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

标签 java hibernate orm caching jboss

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

相关文章:

java - 从 OffsetDateTime 中删除分钟、秒和纳秒

java - EJB/MDB 应用程序中的 DI

java - 使用 Java 流检查 ArrayList 内容

java - 流口水 + hibernate : Need to simulate Left Outer Join with OR condition in rule

java - 逆向工程升级到 Hibernate 3.6 错误

ajax - 如何将基于 Spring + Hibernate 的应用程序后端与纯 HTML 和基于 AJAX 的客户端连接?

Node.js Sequelize UUID 主键 + Postgres

django - Django ORM 与 Oracle 的性能差

java - HQL 子查询中的 NPE

用于声音处理的 Java 库