繁体   English   中英

数据存储区过滤器在带有Java的Google App Engine中不起作用

[英]Datastore Filter doesn't work in Google App Engine with java

我从数据存储中检索数据时遇到问题。

以下是存储在数据存储区中的实体示例: 在此处输入图片说明

我将GAE与Java配合使用,并且设法将数据存储在数据存储中,但是现在我需要使用DatastoreService()Filter()来获取存储的数据。

问题是,即使我在WHERE子句中输入正确的值,也没有数据!

DatastoreService dataStore = DatastoreServiceFactory.getDatastoreService();
Filter usernameFilter = new FilterPredicate("Name", FilterOperator.EQUAL, "moha");

Query q = new Query("User").setFilter(usernameFilter);
PreparedQuery pq = dataStore.prepare(q);

pq.countEntities() //returns 0 always

我什至尝试使用在线“按GQL查询”,但仍然没有数据:

select * from User where Name = 'moha'

这是实体代码:

@Entity
public class User {
    @Id private String username;
    private String password;

    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }

}

我该怎么办?

您在数据存储查看器中看到的ID /名称位于键中,而不是实体的属性,例如“名称”。

您应该包括模型以及如何创建实体。

您选择的查询将针对而不是名称。

证明这一点的最简单方法是通过密钥获取安全感,您可以在上面看到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM