次のようにObjectifyを使用してオブジェクトを保存しています。
Thing th = new Thing();
th.identifier = thingId;
th.name = thingName;
th.json = thingData;
ofy().save().entity(thing);
pResponse.setStatus(200);
pResponse.getWriter().println("OK");
GAEデータストアブラウザを使用して、データベースの値が更新されていることを確認します。私はローカルで実行しています。次に、次のようなものをすべてロードします。
Map<String, List<Thing>> responseJsonMap = new HashMap<String, List<Thing>>();
List<Thing> things = ofy().load().type(Thing.class).list();
responseJsonMap.put("things", things);
pResponse.setContentType("application/json");
try {
GSON.toJson(responseJsonMap, pResponse.getWriter());
} ...
私が返すのは、保存前に存在していたデータです。エンティティのキャッシュをオフにして呼び出しようとしましofy().clear()
たが、どちらも機能しません。サーバーを再起動するか、十分に待つと、保存されたデータが届きます。保存後に追加も試みまし.now()
たが、アクションが完了したことをデータストアで確認できるので必要ありません。保存したばかりのデータをロードできるようにしたいと思っています。私は何が間違っているのですか?