У меня есть следующий код от Andreas 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 всегда "ложь".