例: ObjectGrid キャッシュにデータをプリロードするための Hibernate プラグインの使用

ObjectGridHibernateCacheProvider クラス の preload メソッドを使用して、 特定のエンティティー・クラスの ObjectGrid キャッシュにデータをプリロードできます。

例: EntityManagerFactory クラスの使用

EntityManagerFactory emf = Persistence.createEntityManagerFactory("testPU");
ObjectGridHibernateCacheProvider.preload("objectGridName", emf, TargetEntity.class, 100, 100);
重要: デフォルトでは、エンティティーは第 2 レベル・キャッシュの一部ではありません。 キャッシングが必要な Entity クラスの中に、@cache アノテーションを追加します。 以下に例を示します。
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
@Entity
@Cache(usage=CacheConcurrencyStrategy.TRANSACTIONAL)
public class HibernateCacheTest { ... }
このデフォルトは、persistence.xml ファイルの中に shared-cache-mode エレメントを設定するか、javax.persistence.sharedCache.mode プロパティーを使用することによって、オーバーライドできます。

例: SessionFactory クラスの使用

org.hibernate.cfg.Configuration cfg = new Configuration();
// use addResource, addClass, and setProperty method of Configuration to prepare 
// configuration required to create SessionFactor
SessionFactory sessionFactory= cfg.buildSessionFactory();
ObjectGridHibernateCacheProvider.preload("objectGridName", sessionFactory, 
TargetEntity.class, 100, 100);
注:
  1. 分散システムでは、このプリロード・メカニズムは、1 つの Java 仮想マシンからのみ呼び出すことができます。プリロード・メカニズムは、複数の Java 仮想マシン から同時に実行することはできません。
  2. プリロードを実行する前に、eXtreme Scale キャッシュを 初期化する必要があります。この初期化は、対応するすべての BackingMap が作成されるようにするため、EntityManagerFactory を使用して EntityManager を作成することによって行います。 そうしないでプリロードを実行すると、1 つのみのデフォルト BackingMap がすべてのエンティティーを サポートするようにキャッシュが初期化されてしまいます。これは、単一の BackingMap がすべてのエンティティーで共有されることを示しています。