[英]Java Google appengine datastore.get throws EntityNotFoundException on an existing entity
寻找有关如何尝试通过键获取我知道的实体时出现EntityNotFoundException的想法。
正如您在屏幕快照中看到的那样,我有一个类型为“ Qualifier”的实体,其ID /名称为99_999_9993#5678
但出现了一个异常消息“找不到与密钥匹配的实体:Qualifier(“ 99_999_9993#5678”)”
我不认为这是相关的,而只是为了完整性...:该实体是在事务内部创建的,并且具有祖先(实体组)。 get请求是基于手动创建的密钥的简单非跨国性get。
关于为何为什么要获取此EntityNotFoundException而不是获取实体的任何想法?
事实证明,尽管我不相关,但实际上却非常相关。 创建实体时,我使用KeyFactory为它的祖先创建了一个键,但是当我获取它时,我只使用了它自己的一部分。
我一改使用
Key groupKey=KeyFactory.createKey(Kinds.Group, group_id);
Key key=KeyFactory.createKey(groupKey,Kinds.Qualifier, qualifier_id );
代替
Key key=KeyFactory.createKey(Kinds.Qualifier, qualifier_id );
它开始按预期返回我的实体。
因此基本上需要注意的重要一点是,数据存储查看器ID /名称仅显示键名的本地部分,而忽略任何有关祖先(实体组)的事实的指示...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.