我是 GAE 和 JDO 的新手,我对如何更新数据感到困惑。
使用下面的代码,如果我执行 getAll()
,然后对对象执行 get()
,然后更改 get( ),然后是 getAll()
,第二次调用 getAll()
返回原始未改变的对象。
我尝试执行 flush() 但似乎没有帮助。如果我重新启动 jetty,数据将不会保留。
public class Notes {
@SuppressWarnings("unchecked")
public List<Note> getAll() {
PersistenceManager pm = PMF.instance().getPersistenceManager();
Query query = pm.newQuery("select from com.uptecs.google1.model.Note order by subject");
return (List<Note>) query.execute();
}
public void add(Note note) {
PersistenceManager pm = PMF.instance().getPersistenceManager();
pm.makePersistent(note);
pm.flush();
}
public Note get(long id) {
PersistenceManager pm = PMF.instance().getPersistenceManager();
return (Note)pm.getObjectById(Note.class, id);
}
public void update(Note note) {
PersistenceManager pm = PMF.instance().getPersistenceManager();
pm.flush();
}
}
最佳答案
要全面了解这些文章:
http://www.ibm.com/developerworks/java/library/j-gaej1/
http://www.ibm.com/developerworks/java/library/j-gaej2/index.html
http://www.ibm.com/developerworks/java/library/j-gaej3.html
2 和 3 最相关。
public void add(Note note) {
PersistenceManager pm = getPersistenceManagerFactory()
.getPersistenceManager();
try {
pm.makePersistent(note);
} finally {
pm.close();
}
}
关于java - 为什么我的更新不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3239076/