0

为什么这 2 次提取会导致 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 字段

4

1 回答 1

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 。

于 2012-12-06T20:09:53.953 回答