Beispiel: Hibernate-Plug-in zum vorherigen Laden von Daten in den ObjectGrid-Cache verwenden

Sie können die Methode "preload" der Klasse "ObjectGridHibernateCacheProvider" verwenden, um Daten für eine Entitätsklasse vorab in den ObjectGrid-Cache zu laden.

Beispiel: Klasse EntityManagerFactory verwenden

EntityManagerFactory emf = Persistence.createEntityManagerFactory("testPU");
ObjectGridHibernateCacheProvider.preload("objectGridName", emf, TargetEntity.class, 100, 100);
Wichtig: Standardmäßig sind Entitäten nicht Teil des L2-Caches. Fügen Sie in den Entity-Klassen, die Caching erfordern, die Annotation "@cache" hinzu. Es folgt ein Beispiel:
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
@Entity
@Cache(usage=CacheConcurrencyStrategy.TRANSACTIONAL)
public class HibernateCacheTest { ... }
Sie könnnen diese Standardeinstellung überschreiben, indem Sie das Element "shared-cache-mode" in der Datei persistence.xml definieren oder die Eigenschaft "javax.persistence.sharedCache.mode" verwenden.

Beispiel: Klasse SessionFactory verwenden

org.hibernate.cfg.Configuration cfg = new Configuration();
// Methoden addResource, addClass, und setProperty von Configuration verwenden,
// um erforderliche Konfiguration zum Erstellen von SessionFactor vorzubereiten
SessionFactory sessionFactory= cfg.buildSessionFactory();
ObjectGridHibernateCacheProvider.preload("objectGridName", sessionFactory, TargetEntity.class, 100, 100);
Anmerkung:
  1. In einem verteilten System kann dieser Preload-Mechanismus nur über eine einzige Java Virtual Machine aufgerufen werden. Der Preload-Mechanismus kann nicht gleichzeitig über mehrere JVMs ausgeführt werden.
  2. Vor der Ausführung des Preload-Mechanismus müssen Sie den eXtreme-Scale-Cache initialisieren, indem Sie einen EntityManager über die EntityManagerFactory erstellen, damit alle entsprechenden BackingMaps erstellt werden. Andernfalls zwingt der Preload-Mechanismus die Initialisierung des Caches mit einer einzigen Standard-BackingMap für die Unterstützung aller Entitäten. Das bedeutet, dass eine einzige BackingMap von allen Entitäten gemeinsam genutzt wird.