У меня есть следующий код из учебника Андреаса Борглина :
@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 всегда "false".