Java google cloud端点存在查询

时间:2014-09-08 05:58:56

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

我如何编写存在查询?基本上我有一个带有大量数据的数据存储“表”,我想检查是否存在特定值。我想象检查“存在”,如果存在这样的事情,那么查询匹配的所有内容然后检查是否getResultList().isEmpty()等等,会快得多。

我不介意JPA或数据存储区查询中的建议

更详细一点。假设我的实体中的一个字段是名称,我想查找我的“表格”中是否有人名为“john”。我不想要名称为“john”的所有实体的列表。我只是想知道这样的事情是否存在。

1 个答案:

答案 0 :(得分:1)

我能想到的最好的方法是运行一个只访问索引的仅键查询,而不进行实体提取。

Query query = new Query("SomeKind");
query.setFilter(new FilterPredicate("name", FilterOperator.EQUAL, "john"));
query.setKeysOnly();

DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
List<Entity> entities = ds.prepare(query).asList(FetchOptions.Builder.withLimit(1));
if(entities.size() == 1) {
    //Exists!
}