# 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 楼答案 是的,有可能 试着这样做: 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 楼答案 如果您想测试是否存在,可以使用Victor的建议,但取而代之的是获取计数: return datastore.prepare(gaeQuery) .countEntities(FetchOptions.Builder.withLimit(1)) > 0;
# 1 楼答案
为了通过键检查一个实体的存在性,最简单和最便宜的方法是简单地使用
get()
:Get(1读操作)比查询(1读+1小)便宜:http://code.google.com/appengine/docs/billing.html
# 2 楼答案
是的,有可能
试着这样做:
# 3 楼答案
如果您想测试是否存在,可以使用Victor的建议,但取而代之的是获取计数: