我在数据存储中存在实体。我可以通过属性查询如发现管理控制台:Appengine数据存储无法通过未编码密钥找到现有实体
SELECT * FROM UserEntry where email = '[email protected]'
并且还通过编码的钥匙串进行查询,如:
SELECT * FROM UserEntry where __key__ = KEY('cy1hcHByIAsSCVVzZXJFbnRyeM')
然而,当我查询的未编码的关键实体,它不是发现:
SELECT * where __key__ = KEY('UserEntry','[email protected]')
从以前的查询中,我可以验证该键是否正确,并且相同的查询适用于相同类型的其他实体。
我遇到相同的行为,当我尝试通过JDO API来访问实体:
pm.getObjectById(UserEntry.class, "[email protected]");
该代码产生以下异常:
javax.jdo.JDOObjectNotFoundException: Could not retrieve entity of kind UserEntry with key UserEntry("[email protected]")
这是怎么回事?我怎样才能解决这个问题,并在将来避免它?
如果您发布* actual *值而不是'cy1hcHByIAsSCVVzZXJFbnRyeM'和“[email protected]”,这将有所帮助。然后我可以很容易地检查这些是否相同。你给的不是; 'cy ... eM'甚至不是一个有效的密钥。 –
实际值是我们用户的电子邮件地址,这是一种私人信息..但我可以向您保证编码密钥的名称正确解码给定的电子邮件。 –
所以你说只有一个关键字和一个关键字,使用KEY进行查询('sdfasdfasdfasfsdfasdfsd'),但使用KEY('classname','keyname')的相同查询失败?始终如一?你不能用其他键重现?那么请私下向我发送详细信息。 –