我正在使用 JDO 为 GWT 项目在 GAE 中存储对象。我在创建新对象时遇到问题。我第一次创建对象时效果很好。但是第二次,它用另一个我觉得很奇怪的 Key 值覆盖了前一个。我应该说如果刷新页面我可以创建一个新对象。这是我正在使用的代码。post 参数是一个新对象,我认为数据存储实体上的新 ID 证明了这一点。我不明白我之前创建的对象去了哪里。
public static Post addPost(Post post) {
PersistenceManager pm = PMF.get().getPersistenceManager();
Transaction tx = pm.currentTransaction();
try{
tx.begin();
post.getTopic().addPost(post);
pm.makePersistent(post.getTopic());
pm.detachCopyAll(post.getTopic());
tx.commit();
} finally {
if (tx.isActive())
tx.rollback();
pm.close();
}
return post;
}