gpt4 book ai didi

hibernate - WildFly8.2.0.Final、Hibernate、Infinispan : org. hibernate.cache.CacheException:不支持的访问类型 [读写]

转载 作者:行者123 更新时间:2023-12-01 23:46:51 24 4
gpt4 key购买 nike

我正在尝试从似乎运行良好的 ehcache 切换到“本地”Wildfly 的 Infinispan。我没有对 WildFly 的默认配置进行任何更改,我使用的是 hibernate 和 infinispan 内置模块。我从基本的持久性配置开始,例如:

    <persistence-unit name="frmwrkjta" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:jboss/ds/frmwrkmysqljta</jta-data-source>

<shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode><!-- ALL, NONE, ENABLE_SELECTIVE,DISABLE_SELECTIVE, UNSPECIFIED -->
<properties>
<property name="shared-cache-mode" value="ENABLE_SELECTIVE" />
<!-- <property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.EhCacheRegionFactory"/> -->
<property name="net.sf.ehcache.configurationResourceName" value="META-INF/ehcache-persistence.xml" />
<property name="hibernate.cache.use_query_cache" value="true" />
<property name="hibernate.cache.use_second_level_cache" value="true" />
<property name="hibernate.generate_statistics" value="true" />
<property name="hibernate.cache.infinispan.statistics" value="true" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
<!-- <property name="hibernate.hbm2ddl.auto" value="update" /> -->
<property name="hibernate.hbm2ddl.auto" value="validate" />
<property name="hibernate.show_sql" value="true" />
<property name="org.hibernate.envers.audit_table_suffix" value="_log" />
<property name="org.hibernate.envers.revision_field_name" value="dbrevision_r" />
<property name="org.hibernate.envers.revision_type_field_name" value="dbrevtype" />
</properties>
</persistence-unit>

后来我试图添加用谷歌搜索的属性...

  • 第一个是我最喜欢的:

         <property name="hibernate.cache.default_cache_concurrency_strategy" value="read-only"/>

之后还使用所有可选值,如transactionalread-onlynontrict read-write,甚至read-write ;)

  • 然后:

         <property name="hibernate.cache.infinispan.container" value="hibernate"/>
  • 之后:

         <property name="hibernate.cache.region.factory_class" value="org.jboss.as.jpa.hibernate4.infinispan.SharedInfinispanRegionFactory" />

所有这一切都以失败的部署异常结束:

org.hibernate.cache.CacheException: Unsupported access type [read-write]

我在实体中仅使用 JPA 的 @Cacheable 注释...

我错过了什么,我做错了什么?

编辑:

不确定这是否重要。我正在添加省略的 persistence.xml 开头...我正在尝试使用 JPA2.1:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" version="2.1">

最佳答案

Infinispan Hibernate 2LC 仅支持read-onlytransactional 策略。我们计划添加 read-writenon-strict-read-write 但我们还没有这样做。

应该不需要添加 hibernate.cache.infinispan.containerhibernate.cache.region.factory_class 属性。

我建议您从像这样的简单配置开始:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="frmwrkjta">
<description>example of enabling the second level cache.</description>
<jta-data-source>java:jboss/ds/frmwrkmysqljta</jta-data-source>
<shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
<properties>
<property name="hibernate.cache.use_second_level_cache" value="true"/>
</properties>
</persistence-unit>
</persistence>

然后根据需要添加属性,例如如果需要……启用查询缓存

关于hibernate - WildFly8.2.0.Final、Hibernate、Infinispan : org. hibernate.cache.CacheException:不支持的访问类型 [读写],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28686400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com