【发布时间】:2012-11-27 14:11:15
【问题描述】:
我是 Objectify 的新手,我什么都不懂(愚蠢的事情)。 我正在构建一个 Restful Web 服务(带有 restlet)并且我正在创建一个 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) 是异步的:
- 它返回什么?所以,如果
load().ref()返回一个空对象或一个“未来”对象: - 使用对象时发生了什么? (我使用一个空值对象?,一个“仍在等待”的对象)?
- 我如何知道对象已准备就绪? (某个监听器、处理程序?)使用它?
- 额外:如果没有任何方法可以知道对象何时准备好,我如何加载 ref 同步?
非常感谢
【问题讨论】:
标签: java database google-app-engine asynchronous objectify