2

私はObjectifyを初めて使用し、何か(愚かなこと)を理解していません。Restful Webサービス(レストレット付き)を構築していて、JSON応答を作成しています。それで:

Party party;
    for(Ref<Game> jref : party.games)
    {
        JSONObject object = new JSONObject();

        try{
            Game gAux = jref.get(); //If the value ref is not load, the excetion throws
        }
        catch(IllegalStateException e)
        {
        //Is asynchronous
            jref = ObjectifyService.ofy().load().ref(jref);
        }

        serializeGame(jref.get(), object);
    }

わかりました。コードは非常に単純です。Gameオブジェクトを取得し、それをJSONオブジェクトにシリアル化してから、応答を送信します。しかし、非同期がどのように機能するのかわかりませんload()

load().ref(jref)非同期の場合:

  1. それは何を返しますか?したがって、load().ref()「future」オブジェクトの空のオブジェクトを返す場合は、次のようになります。
  2. オブジェクトを使用するとどうなりますか?(私はnull値オブジェクトを使用しますか?、「まだ待っている」オブジェクト)?
  3. オブジェクトの準備ができていることをどのように知ることができますか?(リスナー、ハンドラー?)それを使用するには?
  4. 追加:オブジェクトの準備ができたことを知る方法がない場合、ref同期をロードするにはどうすればよいですか?

どうもありがとう

4

1 に答える 1

1

これはここで答えられました:

https://groups.google.com/forum/?fromgroups=#!topic/objectify-appengine/8dLAbSWJVB4

「短い答え」は、Ref/Map/List は、POJO を具体化しようとすると同期的にブロックする非同期ファサードであるということです。未来のように。

于 2012-11-27T18:22:58.900 に答える