因此,我正在使用Wicket创建一个小型Web应用程序,该应用程序将在Google应用程序引擎上运行。我使用的是JDO,到目前为止持续数据(插入)或查询数据的相同数据对象没有问题。也许我错过了一些基本的东西,我试图采取其中一个持久对象,更改两个值,然后我希望修改后的对象在数据存储中更新。使用JDO和GAE更新对象
我有一个持久的用户对象。我可以查询这个,所以我知道对象本身有正确的注释。
我正在更新它的代码是:
final PersistenceManager pm = PMF.get().getPersistenceManager();
Transaction trans = pm.currentTransaction();
try{
trans.begin();
user.setLoginCount(user.getLoginCount()+1);
user.setLastLoginTime(new Date());
trans.commit();
}finally{
if (trans.isActive()) {
trans.rollback();
System.out.println("----transaction rollback - submitLogin----");
}
pm.close();
}
这里是我的用户对象注解这两件事情我想改变...
@Persistent
private Date lastLoginTime;
@Persistent
private int loginCount = 0;
我做了正确的查询在此代码之后,它在我更改值之前返回相同的对象。
任何想法我做错了什么?
感谢,这正是我正在寻找。我打电话pm.makePersistant()将对象添加到数据存储,然后pm.close()并在应用程序中使用我的对象。然后我创建了一个新的pm,并尝试使用它来更新对象。现在,我只需再次获取对象并复制字段。似乎工作。 – Nick 2009-09-09 12:51:52