我是Google App引擎新手,我正在尝试一些示例代码而且我被卡住了:(
以下是代码:
datastore = DatastoreServiceFactory.getDatastoreService();
Transaction txn = datastore.beginTransaction();
Entity oSet = new Entity("Set", "Set1");
datastore.put(oSet);
Entity oItem1 = new Entity("item", "item1", oSet.getKey());
oItem1.setProperty("qty", "two");
datastore.put(oItem1);
Entity oItem2 = new Entity("item", "item2", oSet.getKey());
oItem2.setProperty("qty", "five");
datastore.put(oItem2);
Query query = new Query("item").setAncestor(oSet.getKey());
List<Entity> oItems = datastore.prepare(query).asList(FetchOptions.Builder.withLimit(50));
for(Entity i : oItems) {
System.out.println("item qty: " + i.getProperty("qty"));
}
txn.commit();
我正在尝试使用一个属性“qty”创建两个“item”实体。这两个“项”实体是实体“Set”的后代。但我无法找回“项目”实体。查询有问题吗?
答案 0 :(得分:1)
你需要把txn.commit();就在datastore.put(oItem2)之后;这将确保您的写入操作完成后,运行查询(使用或不使用单独的事务)将获取正确的结果
希望它有所帮助。