Ejemplo: Utilización del plug-in Hibernate para precargar datos en la memoria caché de ObjectGrid

Puede utilizar el método preload de la clase ObjectGridHibernateCacheProvider para precargar los datos en la memoria caché de ObjectGrid para una clase de entidad.

Ejemplo: Utilización de la clase EntityManagerFactory

EntityManagerFactory emf = Persistence.createEntityManagerFactory("testPU");
ObjectGridHibernateCacheProvider.preload("objectGridName", emf, TargetEntity.class, 100, 100);
Importante: De forma predeterminada, las entidades no forman parte de la memoria caché de segundo nivel. En las clases de entidad que requieren almacenamiento en memoria caché, añada la anotación @cache. A continuación se muestra un ejemplo:
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
@Entity
@Cache(usage=CacheConcurrencyStrategy.TRANSACTIONAL)
public class HibernateCacheTest { ... }
Puede sustituir este valor predeterminado estableciendo el elemento shared-cache-mode en el archivo persistence.xml o mediante la propiedad javax.persistence.sharedCache.mode.

Ejemplo: Utilización de la clase SessionFactory

org.hibernate.cfg.Configuration cfg = new Configuration();
// utilizar el método addResource, addClass y setProperty de Configuration para preparar
// la configuración necesaria para crear SessionFactor
SessionFactory sessionFactory= cfg.buildSessionFactory();
ObjectGridHibernateCacheProvider.preload("objectGridName", sessionFactory, 
TargetEntity.class, 100, 100);
Nota:
  1. En un sistema distribuido, este mecanismo de precarga sólo se puede invocar desde una máquina virtual Java. El mecanismo de precarga no se puede ejecutar de forma simultánea desde varias Mäquinas virtuales Java.
  2. Antes de ejecutar la precarga, debe inicializar la memoria caché de eXtreme Scale creando EntityManager mediante EntityManagerFactory para crear todas las BackingMaps correspondientes; de lo contrario, la precarga obliga a que se inicialice la memoria caché con solo una BackingMap predeterminada para dar soporte a todas las entidades. Esto significa que todas las entidades deberán compartir un objeto BackingMap.