Objectify NotFoundException

时间:2012-12-06 18:32:47

标签: objectify

为什么这两次抓取会导致NotFoundException?

ofy().load().type(MyClass.class).id(myClassInstance.getId()).safeGet(); 
ofy().load().key(myClassInstance.getKey()).safeGet();

但是这个查询返回一个实体:

ofy().load().type(MyClass.class).filter("fieldName",myClassInstance.getUserId()).first().get();

其他信息: MyClass包含@ Parent和@Id字段

1 个答案:

答案 0 :(得分:0)

按键加载时未指定父键。

ofy().load().type(MyClass.class).id(myClassInstance.getId()).safeGet();
// should be:
ofy().load().type(MyClass.class).parent(myClassInstance.getParent()).id(myClassInstance.getId()).safeGet();

对于第二行,我怀疑你的getKey()实现是有缺陷的并且缺少父键。查询有效,因为查询不是键查找;它只返回属性索引中的任何内容。

请记住,ID仅对特定父级是唯一的。实体的唯一标识符是{parent,id}。仔细阅读https://code.google.com/p/objectify-appengine/wiki/Concepts