如果我更改类定义,AppEngine JDO 查询不会获取对象
我有一个名为 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 也为 null
I have a class called User. it looks somethinh like this
@PersistenceCapable
public class User
{
@Persistent private String key;
@Persistent private String email;
@Persistent private String password;
...
}
I have some User objects in the datastore. I added two more fields to the definition.
@Persistent private boolean passwordReset;
@Persistent private boolean needsReset;
Now, my queries on email
pm.newQuery(User.class, "email == mail");
query.execute(email);
don't return any data, even though the datastore viewer still displays the objects. What can I do to fix it?
edit: more code without 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 is null even if there is mathing data
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我遇到了同样的问题(请参阅此处)。您可能没有在类中实现serialVersionUID 字段。最终我必须创建一个新的 JDO 对象并使用处理程序将现有数据(旧对象)迁移到新模型。
I had the same problem (see here). You probably did'nt implement the serialVersionUID field in your class. Eventually I had to create a new JDO object and migrate the existing data (old objects) to the new model using a handler.