寻找想法当我试图通过其密钥获取我所知道的实体时,我怎么会得到一个EntityNotFoundException。
正如您在屏幕截图中看到的那样,我有一个类型“限定符”的实体,其ID /名称为99_999_9993#5678
,但是获得了一个例外,说“找不到与该键匹配的实体:限定符(”99_999_9993# 5678 “)”
我不认为它是相关的,只是为了完整性......: 实体在事务内创建,并且还具有祖先(实体组)。 get请求是基于手动创建的密钥的简单非跨国获取。
有什么想法为什么我得到这个EntityNotFoundException而不是获取实体?
答案 0 :(得分:0)
事实证明,我认为不相关的实际上非常相关。 当我创建实体时,我使用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 /名称只显示键名的本地部分,忽略了存在祖先(实体组)这一事实的任何迹象......