0
我正在使用JDO on app engine。出于某种原因,这种方法PersistenceManager
的getObjectById
回报:使用getObjectById获取实体时出错:javax.jdo.JDOObjectNotFoundException:没有这样的对象
No such object
org.datanucleus.exceptions.NucleusObjectNotFoundException: No such object
代码:
public Image getById(long id) {
Image img = null;
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
img = (Image) pm.getObjectById(id);
}catch (Exception e){
e.printStackTrace();
}finally {
pm.close();
}
return img;
}
在这个文件中的另一部分,我能够成功地检索所有实体使用Query
:
public List<Image> getAll() {
PersistenceManager pm = PMF.get().getPersistenceManager();
List<Image> results = null;
Query q = pm.newQuery(Image.class);
q.setOrdering("date desc");
try {
results = (List<Image>) q.execute();
} finally {
q.closeAll();
}
return results;
}
调试:
它显示/显然,数据存储保存与要求id
的对象。为什么这个异常被抛出?
不,它清楚地表明数据存储具有特定的“表”,该表具有具有该id长整型值的列。既然你没有告诉它看“表”,它怎么知道去哪里看?看到答案 –