Je sauvegarde un objet avec Objectify comme ceci:
Thing th = new Thing();
th.identifier = thingId;
th.name = thingName;
th.json = thingData;
ofy().save().entity(thing);
pResponse.setStatus(200);
pResponse.getWriter().println("OK");
Je vérifie en utilisant le navigateur de données GAE que la valeur a été mise à jour dans la base de données. Je suis en train de l'exécuter en local. Ensuite, je charge tous les objets de cette manière:
Map> responseJsonMap = new HashMap>();
List things = ofy().load().type(Thing.class).list();
responseJsonMap.put("things", things);
pResponse.setContentType("application/json");
try {
GSON.toJson(responseJsonMap, pResponse.getWriter());
} ...
Ce que je reçois en retour est la donnée qui existait avant la sauvegarde. J'ai essayé de désactiver le cache sur l'entité et d'appeler ofy().clear()
mais rien ne fonctionne. Si je redémarre mon serveur ou attends assez longtemps, les données enregistrées apparaissent. J'ai également essayé d'ajouter .now()
après la sauvegarde, mais ce n'est pas nécessaire car je peux vérifier dans le datastore que l'action est terminée. J'aimerais vraiment pouvoir charger les données que je viens de sauvegarder. Qu'est-ce que je fais de travers?