Hibernateは、Java用の人気のあるオープンソースのオブジェクトリレーショナルマッピングソリューションです。 パフォーマンスを向上させる目的で、Hibernateはキャッシュ機能も提供します。 Hibernateは、第XNUMXレベルのキャッシュと第XNUMXレベルのキャッシュのXNUMX種類のキャッシュを提供します。
ファーストレベルキャッシュは組み込みでデフォルトとして使用されますが、使用が制限されており、アクセスできず、インプロセスキャッシュのみです。 セカンドレベルキャッシュはプラグイン可能なアーキテクチャを提供します。つまり、サードパーティのキャッシュをHibernateのセカンドレベルキャッシュとして使用できます。
NCache Hibernate Second Level Cacheプロバイダを実装し、データベース実行の負荷を軽減し、SQLトラフィックを最小限に抑えます。これにより、コードを変更することなく直接設定が可能になり、アプリケーションはすぐに次のものにアクセスできるようになります。 NCacheの堅牢な分散キャッシュ機能群。
セットアップ NCache Hibernateの第XNUMXレベルのキャッシュは非常に簡単です。 実際のコードを変更する必要はありません。 編集する必要があるのは構成ファイルのみです。
今すぐ追加します NCache Hibernateの第XNUMXレベルのキャッシュとして、hibernate.cfg.xmlは次の方法で編集する必要があります。
これは、で行われた変更の例です。 hibernate.cfg.xml ファイル:
<hibernate-configuration>
<session-factory>
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">JCacheRegionFactory</property>
...
</session-factory>
</hibernate-configuration>
互換性に関する注意: この構成は、Hibernate バージョン 3.6 から 6.x と互換性があり、JCache (JSR-107) 標準を利用するすべての Java 環境をサポートします。
Hibernateは キャッシュリージョン オブジェクトを保存するため。 NCache さまざまなプロパティを使用してこれらのキャッシュ領域を構成できます。 The NCacheこの目的のためにHibernate.xmlファイルが使用されます。 このファイルには、によって使用されるリージョンと関連する構成のすべての構成設定とオプションが含まれています NCache.
以下はサンプルです NCacheリージョンが構成されているHibernate.xml構成ファイル:
<configuration>
<application-config application-id="myapp" enable-cache-exception="true" default-region-name="DefaultRegion" key-case-sensitivity="false">
<cache-regions>
<region name="hibernator.BLL.Customer:Customer" cache-name="myPartitionedcache" priority="BelowNormal" expiration-type="Absolute" expiration-period="8"/>
<region name="DefaultRegion" cache-name="myPartitionedcache" priority="default" expiration-type="none" expiration-period="0" />
</cache-regions>
...
</application-config>
</configuration>
NCache は、.NET Framework、.NET Core、および Java 用の多用途で効率的かつ効果的な分散キャッシュです。幅広い機能セットを備えています。これらの機能の 1 つは、データベース同期です。 SQLの依存関係。 これは、キャッシュがデータベースに変更がないかチェックし、古いまたは冗長であることが判明したアイテムを再ロードまたは削除する場所です。
NCache ネイティブデータベース通知(SQL依存やOracle依存など)を利用してHibernate L2キャッシュを同期します。これにより、サードパーティアプリケーションがデータベースを変更した場合でも、 NCache 影響を受けるHibernateエンティティを自動的に無効化またはリロードします。この機能を有効にするには、以下の変更を NCache休止状態.xml ファイル:
<configuration>
<application-config application-id="myapp" enable-cache-exception="true" default-region-name="DefaultRegion" key-case-sensitivity="false">
...
<database-dependencies>
<dependency entity-name="hibernator.BLL.Customer" type="oracle" sql-statement="select ContactName from Customer where CustomerID ='?'" cache-key-format="hibernator.BLL.Customer#[pk]" connection-string="Your Connection String"/>
</database-dependencies>
</application-config>
</configuration>
Hibernateは次の機能を提供します クエリキャッシュ。 ここで、クエリの結果は第XNUMXレベルのキャッシュにキャッシュされます。 NCache この機能を使用して、このようなクエリをキャッシュできます。 この機能は、編集することで有効にできます hibernate.cfg.xml 次の方法でファイルします。
<hibernate-configuration>
<session-factory>
...
<property name="hibernate.cache.use_query_cache">true</property>
</session-factory>
</hibernate-configuration>
クエリキャッシュを有効にしても、デフォルトでは各クエリはキャッシュされません。 代わりに、キャッシュする必要のあるクエリは、コードでキャッシュ可能に設定する必要があります。 クエリをキャッシュ可能に設定するには、クエリの作成中にクエリのsetCacheable(true)関数を呼び出します。 以下のコードは、キャッシュ可能なクエリを示す例です。
List customerEnumerator = session.createQuery("from Customer c").setCacheable(true).list();
主な理由は次のとおりです NCache は、アプリケーションがマルチサーバー環境で実行されているHibernateの第XNUMXレベルのキャッシュとして使用するのに適したオプションです。
hibernate.cache.use_second_level_cache hibernate.cfg.xmlのプロパティを設定し、 hibernate.cache.region.factory_class 〜へ JCacheRegionFactoryこのセットアップでは、アプリケーション コードを変更する必要はありません。hibernate.cache.use_query_cache プロパティへ true 設定ファイルで、Javaコードで特定のクエリをキャッシュ可能としてマークするには、 setCacheable(true) 方法。©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。