【问题标题】:AppEngine JDO queries don't fetch objects, if I change the class definition如果我更改类定义,AppEngine JDO 查询不会获取对象
【发布时间】:2012-02-09 18:47:00
【问题描述】:

我有一个名为 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);

不返回任何数据,即使数据存储查看器仍显示对象。我能做些什么来解决它?

编辑:更多没有 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 也为空

【问题讨论】:

    标签: java google-app-engine google-cloud-datastore


    【解决方案1】:

    我遇到了同样的问题(请参阅here)。您可能没有在您的课程中实现 serialVersionUID 字段。最终,我不得不创建一个新的 JDO 对象并使用处理程序将现有数据(旧对象)迁移到新模型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多