我从安德烈亚斯Borglin的tutorial下面的代码:如何更新在GAE数据存储中的布尔值?
@Override
public Model saveModel(Model model) {
System.out.println("model isDone: " + ((Task)model).getDone());
PersistenceManager pm = PMF.get().getPersistenceManager();
Model savedModel = null;
try {
savedModel = pm.makePersistent(model);
} catch (JDOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
pm.close();
}
System.out.println("savedModel isDone: " + ((Task)savedModel).getDone());
System.out.println("model isDone: " + ((Task)model).getDone());
return savedModel;
}
当我创建测试实体它工作正常,但一旦我想更新他们的布尔值不会改变。我保存的“isDone”是“true”,我想将其更改为“false”。这是输出:
model isDone: false
savedModel isDone: true
model isDone: false
更改字符串或设置日期工作没有问题。该字段定义为:
@Persistent
private boolean isDone = true;
我也试过:
@Persistent
private Boolean isDone;
在这种情况下,isDone始终是 “假的”。