这是我的配置:Hibernate 3.3.1.GA、JBoss 5.1.0.GA、JBoss Cache 3.2.0.GA。
我正在按照此处所述进行休眠配置: http ://www.jboss.org/community/wiki/ClusteredJPAHibernateSecondLevelCachinginJBossAS5
<hibernate-configuration>
<session-factory>
<property name="cache.use_second_level_cache">true</property>
<property name="cache.use_query_cache">true</property>
<property name="cache.region.factory_class">org.hibernate.cache.jbc2.JndiMultiplexedJBossCacheRegionFactoryctory</property>
<property name="cache.region.jbc2.cachefactory>java:CacheManager</property>
<property name="cache.region.jbc2.cfg.entity">mvcc-entity</property>
<property name="cache.region.jbc2.cfg.query">local-query</property>
<property name="cache.region_prefix">tempdb</property>
... other non-caching related configuration
</session-factory>
</hibernate-configuration>
但收到指定属性无效的错误:
Caused by: java.lang.IllegalArgumentException: No such property cache for bean org.jboss.hibernate.jmx.Hibernate available [statisticsServiceName, beanName, defaultSchema, defaultCatalog, sessionFactoryName, querySubstitutions, secondLevelCacheEnabled, password, version, statGenerationEnabled, maxFetchDepth, username, useStructuredCacheEntriesEnabled, datasourceName, dirty, streamsForBinaryEnabled, getGeneratedKeysEnabled, hbm2ddlAuto, minimalPutsEnabled, instance, jdbcBatchSize, jdbcScrollableResultSetEnabled, cacheRegionFactoryClass, dialect, scanForMappingsEnabled, runningSince, cacheRegionPrefix, class, cacheProviderClass, sessionFactoryRunning, batchVersionedDataEnabled, harUrl, queryCacheEnabled, sessionFactoryInterceptor, deployedCacheManagerJndiName, showSqlEnabled, reflectionOptimizationEnabled, jdbcFetchSize, listenerInjector, sqlCommentsEnabled, deployedCacheJndiName, controller]
所以,我不能使用“cache.region.factory_class”属性,而只能使用“cacheRegionFactoryClass”(在异常中显示)。
我不能使用任何其他属性,如 cache.region.*,因此无法为我的休眠配置二级缓存。
谁能给我一个链接如何使用 JBoss 5.1 配置 JBoss Cache 3.2?我对 JndiSharedJBossCacheRegionFactory 和 JndiMultiplexedJBossCacheRegionFactory 特别感兴趣。