如何使用Java从Google数据存储中删除一行?
我想从google数据存储中删除一行条目 我已编码:如何使用Java从Google数据存储中删除一行?,java,google-app-engine,google-cloud-datastore,Java,Google App Engine,Google Cloud Datastore,我想从google数据存储中删除一行条目 我已编码: String[] elements = deletedRow.split(","); DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); Entity row = new Entity("Row"); Key rowKey;
String[] elements = deletedRow.split(",");
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Entity row = new Entity("Row");
Key rowKey;
for (String element : elements) {
row.setProperty("userName", "kapil.kaisare");
out.print("UserName : " + element);
row.setProperty("description", element);
rowKey = row.getKey();
out.print("\nKey : " + rowKey);
datastore.delete(rowKey);
}
deletedRow是一个来自ajaxjavascript调用的查询参数&肯定不是空的
用户名打印成功。而按键打印:
键:键0
这真让我吃惊!为什么即使我正在设置行属性,也会有键0
请提出一些解决办法
参考:,参考文件:
如果实体尚未保存(例如,通过DatastoreService.put),则不会完全指定此密钥,并且不能用于某些操作(如DatastoreService.get)。保存实体后,其密钥将更新为完全指定
因此,除非在实体的构造函数中指定了完整密钥,否则不应尝试对从未保存到数据存储的实体使用该密钥。请尝试以下操作
String[] elements = deletedRow.split(",");
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
for (String element : elements) {
Key key = KeyFactory.createKey("Row", element);
datastore.delete(key);
}
我假设行是实体的类型,元素(即用户名?)是键名