我從安德烈亞斯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始終是 「假的」。