低层次的API:
存储:
final Entity entity = new Entity(kind, ret, parent); entity.setProperty(key, text); datastoreService.put(entity);
删除:
final Key key = KeyFactory.createKey(parent, getName(), id); datastoreService.delete(key);
更新:
final Entity entity = new Entity(kind, id, parent); entity.setProperty(key, text); datastoreService.put(entity);
查询by id:
final Key key = KeyFactory.createKey(parent, getName(), id); final Entity entity = datastoreService.get(key);
查询by query:
final Query query = new Query(getName()); //kind
query.addSort(Keys.OBJECT_ID, Query.SortDirection.DESCENDING);
final PreparedQuery preparedQuery = getDatastoreService().prepare(query);
//限制返回大小
final QueryResultIterable<Entity> queryResultIterable =
preparedQuery.asQueryResultIterable(FetchOptions.Builder.
withLimit(num));
final List<JSONObject> ret = new ArrayList<JSONObject>();
for (final Entity entity : queryResultIterable) {
final JSONObject comment = entity2JSONObject(entity);
ret.add(comment);
}
查询by query:
final Query query = new Query(getName()); query.addSort(filter.getKey(), Query.SortDirection.DESCENDING); Query.FilterOperator filterOperator = null; filterOperator = Query.FilterOperator.EQUAL; //第一个参数, 过滤的属性名, 第二个参数谓词, 第三个参数, 需要比较的值 query.addFilter(filter.getKey(), filterOperator, filter.getValue()); final PreparedQuery preparedQuery = datastoreService.prepare(query); //计算符合查询条件的实体个数 final int count = preparedQuery.countEntities(FetchOptions.Builder.withDefaults()); final int pageCount =(int) Math.ceil((double) count / (double) pageSize); //限制返回结果为pageSize个实体 //并且, 是从游标开始偏移offset个实体 final QueryResultList<Entity> queryResultList = preparedQuery.asQueryResultList(withOffset(offset).limit(pageSize));
浙公网安备 33010602011771号