共通のエンティティモジュール(エンティティクラス+ Hibernate XMLマッピング)を共有する複数のJavaアプリケーションがあることを前提としています。現在、エンティティはキャッシュできません(マッピング内の要素は<cache.../>
ではありません)。1つのHibernateマッピングを持つ複数のセカンドレベルキャッシュ設定
ほとんどのアプリケーションは、1つのエンティティの編集に大いに関係しているため、2番目のレベルのキャッシュを解放することはできません。
今、新しいアプリケーションが
- が同じエンティティマッピング
- を使用する必要がありますが、第二のレベルとクエリキャッシュを使用する必要が実装されています。
キャッシュの設定方法は?
いくつかの観察:
これは、このようなキャッシュを設定しないと、私の影響下にされていない他のアプリケーション壊すので、私はマッピングに
<cache.../>
要素を追加することはできません。を
Second-level cache is not enabled for usage [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache]
- マッピングの外部でキャッシュするエンティティをアクティブにする方法が見つかりません。
ehcache.xml
内のエンティティのためのキャッシュ領域を設定すると、私は他のすべてのアプリケーションを変更すると、エンティティのマッピングに<cache.../>
を追加することができたとしても、それはそれはそうで述べているがhibernate.cache.use_second_level_cache=false
を設定することで、キャッシュを無効にするには動作しません - を助けていませんhttp://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html、表3.5
ありがとうございました、盲目になったはずですが、私は本当にそのような設定オプションを見つけようとしました。 たとえば、プログラムによるSpringの設定が好きな方には、 'LocalSessionFactoryBean'、corresponsing方法は' setEntityCacheStrategies(プロパティentityCacheStrategies) ' あるhttp://static.springsource.org/spring/docs/2.5.x/api/org/springframework/orm/hibernate3/LocalSessionFactoryBean.html# setEntityCacheStrategies(java.util.Properties) – rainer198