Я использую Google App Engine, и я создал постоянный объект, использующий документацию Google о JDO. Класс состоит в следующем:JDO Сущность модификации не сохраняется
@PersistenceCapable
public class Message {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
public long id;
@Persistent
public Text message;
@Persistent
public boolean isNew;
@Persistent
public long categoryId;
@Persistent
public boolean plus;
@Persistent
public Date lastUpdate;
Message(long id, String message, boolean isNew, long categoryId, Date lastUpdate, boolean plus) {
this.id = id;
this.message = new Text(message);
this.isNew = isNew;
this.categoryId = categoryId;
this.lastUpdate = lastUpdate;
this.plus = plus;
}
}
И чем я создаю а-HttpServlet со следующим кодом doPost:
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/plain");
PrintWriter writer = resp.getWriter();
Date tenDaysAgo = new Date(new Date().getTime()-TEN_DAYS_IN_MILISSECOND);
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
Query queryMessages = pm.newQuery(Message.class);
queryMessages.setFilter("isNew == True && lastUpdate <= lastUpdateParam");
queryMessages.declareParameters(Date.class.getName() + " lastUpdateParam");
List<Message> results = (List<Message>) queryMessages.execute(tenDaysAgo);
for(Message msg : results) {
msg.isNew = false;
pm.makePersistent(msg);
}
//pm.makePersistentAll(results);
writer.print(results.size() + " messages changed.");
}finally {
pm.close();
}
}
Но, когда я делаю пост запроса я получаю сообщение «изменило 3048 сообщений «. и я проверяю базу данных, и данные не изменяются. Настойчивость не работает, чтобы сохранить изменения, внесенные мной в объект. Несмотря на то, что при использовании makePersistentAll (list) или makePersistent (object) результат тот же: без изменений в базе данных.
Что мне не хватает?
Спасибо!
используя древние GAE JDO более чем вероятно, и у вас нет никакого кода там для обеспечения фиксации данных (которые не поддерживались с помощью v1.x GAE JDO) – DataNucleus