2012-12-06 30 views
0

爲什麼這2次提取會導致NotFoundException?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場

回答

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()的實現有缺陷並且缺少父鍵。查詢起作用,因爲查詢不是密鑰查找;它只是返回屬性索引中的任何內容。

請記住,ids對於特定的父母來說只是唯一的。實體的唯一標識符是{parent,id}。仔細閱讀https://code.google.com/p/objectify-appengine/wiki/Concepts

相關問題