6

私はこの主題についてここで他のスレッドを読みましたが、どの解決策も私にはうまくいきません。

これをhibernate.cfg.xmlに入れてみました:

<property name="hibernate.cache.region.factory_class">org.hibernate.cache.spi.EntityRegion</property>

常にこのエラーが発生します: RegionFactory[org.hibernate.cache.spi.EntityRegion]をインスタンス化できませんでした

また、Hibernate Webサイトのスレッドからのほとんどの提案を試しましたが、うまくいきませんでした。

では、これをどのように構成しますか?

4

3 に答える 3

12

さて、私は答えを見つけました(Youtubeユーザーから):

  1. hibernate-release-4.1.0.Final 以降のバージョンを使用してください。
  2. lib\optional\ehcache ディレクトリから jar を追加します
  3. 更新hibernate.cfg.xml

    <property name="cache.region.factory_class">org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory</property>
    
  4. ClassNotFoundException のため、slf4j-api-1.6.1.jar を追加します (さらに ehcache.org からダウンロードした ehcache-2.5.1-distribution.tar.gz で見つけました)。

  5. これを hibernate.cfg.xml に追加します。

    <!-- Enable Hibernate's automatic session context management -->
    <property name="cache.use_second_level_cache">true</property>
    

ここでの重要なポイントは、Hibernate4 の optional\ ディレクトリから ehcache jar を追加することでした。

于 2012-08-06T16:56:22.007 に答える
3

次のプロパティをHibernateプロパティに追加します。

<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
<prop key="hibernate.cache.provider_configuration_file_resource_path">hibernate-ehcache.xml</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.cache.use_structured_entries">true</prop> 

hibernate-ehcache 4.1.1 jarが必要か、ehcachejarは必要ありません。

変更されたキャッシュプロバイダークラスをメモしてください。

于 2012-08-23T19:04:34.973 に答える
2

希望、それは誰かに役立つかもしれません(休止状態4.x)。

私の春の構成からの抜粋:

public Properties hibernateProperties() {
    Properties properties = new Properties();
    properties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
    properties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect"));
    properties.setProperty("hibernate.format_sql", "true");
    properties.setProperty("hibernate.generate_statistics", env.getProperty("hibernate.generate_statistics"));
    // second-level cache:
    properties.setProperty("hibernate.cache.use_second_level_cache", "true");        
    properties.setProperty("hibernate.cache.region.factory_class", "org.hibernate.cache.EhCacheRegionFactory");
    properties.setProperty("net.sf.ehcache.configurationResourceName", env.getProperty("net.sf.ehcache.configurationResourceName"));
    return properties;
}

クラスパスに「org.hibernate:hibernate-ehcache:HIBERNATE_VERSION」が必要です。

参照: hibernate 設定に関する Ehcache doc

于 2014-06-02T11:40:56.797 に答える