0

我刚开始使用 JDO 和 Google 数据存储

,我有 File 类,其中包含下面的主键代码。

@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;

当我在数据存储中使用 ID/Name 值调用此方法时,它给了我错误 - javax.jdo.JDOObjectNotFoundException: Could not retrieve entity of kind File with key File("6298002603900928")
但是当我使用数据存储中的键值时,它会返回预期的文件对象

ID/名称值为 6298002603900928
键值为 agxvcmdhbml6ZS1mcHZyEQsSBEZpbGUYgICAgICAmAsM

File file = null;
// get data from Google datastore
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
    file = pm.getObjectById(File.class, fileId);
} catch (JDOObjectNotFoundException e) {
    e.printStackTrace();
}

我该如何解决这个问题?

我尝试使用此代码将 ID/名称转换为密钥

Key key = KeyFactory.stringToKey(fileId);

但它也给了我错误java.lang.IllegalArgumentException: Invalid Key PB: no elements。

4

1 回答 1

0

我发现为什么会出现错误。

我使用的 fileId 是字符串。应该是龙。

于 2013-09-25T04:02:06.620 回答