Запросы AppEngine JDO не извлекают объекты, если я изменю определение класса - PullRequest
0 голосов
/ 09 февраля 2012

У меня есть класс с именем User.это выглядит примерно так

@PersistenceCapable
public class User
{
    @Persistent private String key;
    @Persistent private String email;
    @Persistent private String password;
    ...
}

У меня есть несколько пользовательских объектов в хранилище данных.Я добавил еще два поля к определению.

@Persistent private boolean passwordReset;
@Persistent private boolean needsReset;

Теперь мои запросы по электронной почте

pm.newQuery(User.class, "email == mail");
query.execute(email);

не возвращают никаких данных, даже если средство просмотра хранилища данных по-прежнему отображает объекты.Что я могу сделать, чтобы это исправить?

edit: больше кода без jdo:

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Query q = new Query("User");
q.addFilter("email", Query.FilterOperator.EQUAL, email);
PreparedQuery pq = datastore.prepare(q);
Entity result = pq.asSingleEntity();

t равно нулю, даже если есть данные о преобразовании

1 Ответ

0 голосов
/ 02 марта 2012

У меня была такая же проблема (см. здесь ).Вы, вероятно, не реализовали поле serialVersionUID в своем классе.В конце концов мне пришлось создать новый объект JDO и перенести существующие данные (старые объекты) в новую модель с помощью обработчика.

...