如何在App Engine数据存储中获取所有实体?

3
2个回答

3

我找到了一个解决方案,可以在Datastore查询-查询接口示例中找到:

Query q = new Query("Person") 
        PreparedQuery pq = datastore.prepare(q);  
    for (Entity result : pq.asIterable()) {   
       String firstName = (String) result.getProperty("firstName");   
       String lastName = (String) result.getProperty("lastName");   
       Long height = (Long) result.getProperty("height");   
       System.out.println(lastName + " " + firstName + ", " + height.toString() + "inches tall"); 
}

我没有在查询中添加过滤器,因为它会从数据存储中返回所有实体。


0
一种简单的方法是使用gql并设置一个始终为真的条件,然后fetch结果。例如,如果您的实体有一个名为StringKey的字符串字段,您可以这样做:
entities = db.gql("WHERE StringKey >''").fetch(1000)

请注意,在GAE中获取超过1000个实体是可能的,但并不直接,请参见this discussion

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接