有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

仅java键查询,使用键

我想使用一个键执行一个简单的仅键查询(以便测试它在数据存储中是否存在)

java中最简单的方法是什么


共 (3) 个答案

  1. # 1 楼答案

    为了通过键检查一个实体的存在性,最简单和最便宜的方法是简单地使用get()

    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
    datastore.get(KeyFactory.createKey(kind, long) )
    

    Get(1读操作)比查询(1读+1小)便宜:http://code.google.com/appengine/docs/billing.html

  2. # 2 楼答案

    是的,有可能

    试着这样做:

    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
    Query gaeQuery = new Query(entityName);
    gaeQuery.setKeysOnly();     
    gaeQuery.addFilter("__key__", FilterOperator.EQUAL, key);
    PreparedQuery pq = datastore.prepare(gaeQuery);
    List<Entity> results = pq.asList(FetchOptions.Builder.withLimit(1));
    
    Key elementKey = null;
    if (results.size() == 1) {
        elementKey = results.get(0).getKey();
    }   
    
  3. # 3 楼答案

    如果您想测试是否存在,可以使用Victor的建议,但取而代之的是获取计数:

    return datastore.prepare(gaeQuery)
        .countEntities(FetchOptions.Builder.withLimit(1)) > 0;