Exemple : rechargement d'une mappe avec l'interface ClientLoader

Recharger une mappe revient à précharger la mappe, sauf que l'argument isPreload a la valeur false dans la méthode ClientLoader.load.

Exemple de rechargement basé sur le client

L'exemple suivant montre comment recharger des mappes. Cet exemple diffère de l'exemple de préchargement dans la mesure ou un loadSql et ses paramètres sont fournis. Cet exemple recharge uniquement les données client avec un ID compris entre 1000 et 2000. Le paramètre isPreload dans la méthode de chargement a la valeur false.
// Extrayez le gestionnaire d'états 
StateManager stateMgr = StateManagerFactory.getStateManager();

// Affectez à l'état ObjectGrid la valeur PRELOAD avant d'appeler ClientLoader.loader
stateMgr.setObjectGridState(AvailabilityState.PRELOAD, objectGrid);

ClientLoader c = ClientLoaderFactory.getClientLoader();

// Charge les données
String loadSql = "select c from CUSTOMER c 
    where c.custId >= :startCustId and c.custId < :endCustId ";
Map<String, Long> params = new HashMap<String, Long>();
params.put("startCustId", 1000L);
params.put("endCustId", 2000L);

c.load(objectGrid, "CUSTOMER", "customerPU", null, null, 
    loadSql, params, false, null);

// Réaffectez à l'état ObjectGrid la valeur ONLINE
stateMgr.setObjectGridState(AvailabilityState.ONLINE, objectGrid);
A faire : Cette chaîne de requête respecte à la fois la syntaxe de la requête JPA et la syntaxe de la requête d'entité eXtreme Scale. Cette chaîne de requête est importante, car elle est exécutée deux fois : une fois pour invalider les entités ObjectGrid correpondantes et une autre fois pour charger les entités JPA correspondantes.