Java JDO getObjectById返回null,为什么?
我刚开始使用JDO和Google数据存储Java JDO getObjectById返回null,为什么?,java,google-app-engine,jdo,persistence-manager,Java,Google App Engine,Jdo,Persistence Manager,我刚开始使用JDO和Google数据存储 我有一个包含以下主键代码的文件类 @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key key; 当我在数据存储中使用ID/Name值调用此方法时,它给了我错误-javax.jdo.JDOObjectNotFoundException:无法检索具有密钥文件(“6298002603900928”)的类文件的实体但是当我使用数据存储中的键值时,它返
我有一个包含以下主键代码的文件类
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
当我在数据存储中使用ID/Name值调用此方法时,它给了我错误-javax.jdo.JDOObjectNotFoundException:无法检索具有密钥文件(“6298002603900928”)的类文件的实体但是当我使用数据存储中的键值时,它返回预期的文件对象 ID/名称值为6298002603900928
关键值是AGxVCMDHBML6ZS1MCHZYEQSSBEZPBGYGICAGICAGMASM
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/Name转换为Key
Key key = KeyFactory.stringToKey(fileId);
但它也给了我错误java.lang.IllegalArgumentException:无效键PB:无元素。我找到了出现错误的原因 我使用的文件ID是字符串。它应该很长