Ich versuche, ein Objekt zu speichern und zu überprüfen, dass es direkt danach gespeichert wird, und es scheint nicht zu funktionieren.
Hier ist mein Objekt
%Vor%Hier ist der Code zum Speichern und dann gleich danach zu laden.
%Vor%Aber das Objekt "newOne" ist null. Obwohl ich es gerade fertig gemacht habe. Was mache ich falsch?
- Aktualisierung-- Wenn ich später versuche (wie Minuten später) sehe ich manchmal das Objekt, aber nicht direkt nach dem Speichern. Hat dies mit dem hohen Replikationsspeicher zu tun?
Hatte das gleiche Verhalten vor einiger Zeit und stellte eine Frage zu Google Groups - objectify
Hier die Antwort, die ich bekommen habe:
%Vor%Ich habe auch eine weitere gute Antwort, um mich mit dem Verhalten zu beschäftigen
Suchen Sie bei Löschvorgängen nach Schlüsseln und laden Sie dann die Entitäten im Stapel. Stelle sicher Ihr bekommt eine starke Konsistenz (obwohl ich glaube, das ist die Standard). Das Batch-Get sollte für die gelöschten Entitäten null zurückgeben. Beim Hinzufügen wird es ein wenig komplizierter. Index-Updates können einige wenige dauern Sekunden. AFAIK, gibt es drei Wege aus diesem: 1; Verwenden Sie vorberechnet Ergebnisse (die Abfrage vollständig vermeiden). Wenn Ihre nächste Ansicht die des Benutzers ist Vor kurzem erstellte Entitäten, führen Sie eine Liste dieser Schlüssel im Benutzer Entität, und aktualisieren Sie diese Liste, wenn eine neue Entität erstellt wird. Diese Liste wird immer frisch sein, keine Abfrage erforderlich. Abgesehen davon, dass es abgestanden ist Indizes, dies beschleunigt auch Ihre App. Je mehr Sie das Ergebnis festlegen kann zuverlässig verwalten, desto mehr Abfragen können Sie vermeiden.
2; Blenden Sie die Latenz aus, indem Sie die Abfrageergebnisse mit dem Kürzeren "verbessern" Entitäten hinzugefügt. Abhängig von der Rate, mit der Sie Entitäten hinzufügen, entweder injizieren Sie nur den letzten Schlüssel, oder kombinieren Sie dies mit dem Lösung in 1 .
>3; Blenden Sie die Latenz aus, indem Sie den Benutzer durch einige nicht betroffene Ansichten führen bevor Sie auf Ihrer abfragebasierten Ansicht landen. Diese Strategie hat definitiv ein Geruch drüber. Sie müssen sicherstellen, dass diese zusätzlichen Schritte relevant sind an den Benutzer, oder Sie werden eine schlechte Erfahrung geben.
Schmetterlinge, Joakim
Sie können alles hier lesen:
Eine weitere gute Antwort auf eine ähnliche Frage : Objectify speichert nicht synchron, auch nicht jetzt a>
Tags und Links google-app-engine objectify loading