データストアに既存のエンティティがあります。属性クエリで管理コンソールを見つけることができます。
SELECT * FROM UserEntry where email = 'user@mail.com'
また、エンコードされたキー文字列でクエリを実行します。例:
SELECT * FROM UserEntry where __key__ = KEY('cy1hcHByIAsSCVVzZXJFbnRyeM')
ただし、エンコードされていないキーでエンティティをクエリすると、見つかりません。
SELECT * where __key__ = KEY('UserEntry','user@mail.com')
以前のクエリから、キーが正しいこと、および同じクエリが同じタイプの他のエンティティに対して機能することを確認できます。
JDO API 経由でエンティティにアクセスしようとすると、同じ動作が発生します。
pm.getObjectById(UserEntry.class, "user@mail.com");
このコードにより、次の例外が発生します。
javax.jdo.JDOObjectNotFoundException: Could not retrieve entity of kind UserEntry with key UserEntry("user@mail.com")
どうしてそうなった?この問題を解決し、今後回避するにはどうすればよいですか?