我如何编写存在查询?基本上我有一个带有大量数据的数据存储“表”,我想检查是否存在特定值。我想象检查“存在”,如果存在这样的事情,那么查询匹配的所有内容然后检查是否getResultList().isEmpty()
等等,会快得多。
我不介意JPA或数据存储区查询中的建议
更详细一点。假设我的实体中的一个字段是名称,我想查找我的“表格”中是否有人名为“john”。我不想要名称为“john”的所有实体的列表。我只是想知道这样的事情是否存在。
答案 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!
}