6

Hibernate の二次キャッシュとして memcache を使用することに取り組んでいます。hibernate-memcached-1.2.4、spymemcached 2.8.0、および hibernate 4.1.4 を使用しています。

しかし、私がそれを使用しようとすると、エラーが表示されます

    最初の sessionfactory の作成に失敗しましたorg.hibernate.cache.NoCacheRegionFactoryAvailableException: アプリケーションで第 2 レベルのキャッシュが使用されていますが、プロパティ hibernate.cache.region.factory_class が指定されていません。第 2 レベルのキャッシュを無効にするか、正しいリージョン ファクトリ クラス名をプロパティ hibernate に設定してください.cache.region.factory_class (そして、たとえば第 2 レベルのキャッシュ プロバイダー、hibernate-infinispan がクラスパスで利用可能であることを確認します)。
    スレッド「メイン」での例外 java.lang.ExceptionInInitializerError
        Util.HibernateUtil で (HibernateUtil.java:16)
        hibba.AccountDAOimpl.getAccount(AccountDAOimpl.java:23) で
        hibba.Connect.main(Connect.java:7) で
    原因: org.hibernate.cache.NoCacheRegionFactoryAvailableException: アプリケーションで第 2 レベルのキャッシュが使用されていますが、プロパティ hibernate.cache.region.factory_class が指定されていません。第 2 レベルのキャッシュを無効にするか、正しいリージョン ファクトリ クラス名をプロパティ hibernate に設定してください。 .cache.region.factory_class (そして、クラスパスで第 2 レベルのキャッシュ プロバイダー、たとえば hibernate-infinispan が利用可能であることを確認します)。
        org.hibernate.cache.internal.NoCachingRegionFactory.buildTimestampsRegion (NoCachingRegionFactory.java:87) で
        org.hibernate.cache.spi.UpdateTimestampsCache で。(UpdateTimestampsCache.java:63)
        org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:510) で
        org.hibernate.cfg.Configuration.buildSessionFactory (Configuration.java:1744) で
        org.hibernate.cfg.Configuration.buildSessionFactory (Configuration.java:1782) で
        Util.HibernateUtil で (HibernateUtil.java:12)
        ... 2以上

hibernate.cfg.xml に記述されているプロパティは次のとおりです。

<pre>
<property name="hibernate.cache.use_query_cache">true</property>
<property name="cache.provider_class">com.googlecode.hibernate.memcached.MemcachedCacheProvider </property>
        <property name="hibernate.memcached.memcacheClientFactory">com.googlecode.hibernate.memcached.dangamemcached.DangaMemcacheClientFactory</property>      
        <property name="hibernate.Memcached.servers"> localhost:11211 </property>
        <property name="hibernate.Memcached.cacheTimeSeconds">300</property>
        <property name="hibernate.Memcached.connectionFactory">KetamaConnectionFactory</property> </pre>
4

2 に答える 2

4

例外は非常に自明です。*hibernate.cache.region.factory_class*プロパティを設定する必要があります。たとえば、ehcacheを使用すると、次の行が追加されます。

<property name="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</property>
于 2012-07-10T13:25:21.020 に答える
0

hibernate-memcached 1.3 および spymemcached 2.7 を hibernate 4.3 で使用しているときに同じ問題が発生しました。を提供するhibernate4-memcachedに切り替える必要がありましたRegionFactory

于 2016-01-20T04:08:34.583 に答える