【问题标题】:JDO getObjectById return null, why?JDO getObjectById 返回 null,为什么?
【发布时间】:2013-09-25 12:02:06
【问题描述】:

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

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

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

当我使用数据存储区中的 ID/Name 值调用此方法时,它给了我错误 - javax.jdo.JDOObjectNotFoundException: 无法使用键 File("6298002603900928") 检索类型文件的实体 .
但是当我使用数据存储区中的 Key 值时,它会返回预期的 File 对象

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.

【问题讨论】:

    标签: java google-app-engine jdo persistence-manager


    【解决方案1】:

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

    我使用的

    fileId 是字符串。应该是Long。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-26
      • 2011-11-30
      • 2016-12-28
      • 2015-11-25
      • 2015-07-04
      • 2019-09-29
      • 2015-02-25
      相关资源
      最近更新 更多