1

我是 Google App 引擎的新手,我正在尝试一些示例代码,但我被卡住了 :(

下面是代码:

数据存储 = 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();

我正在尝试使用一个属性“数量”创建两个“项目”实体。这两个“item”实体是实体“Set”的后代。但我无法取回“项目”实体。查询有问题吗?

4

1 回答 1

1

你需要把 txn.commit(); 就在 datastore.put(oItem2); 之后 这将确保您的写操作完成,之后运行的查询(有或没有单独的事务)将获取正确的结果

希望能帮助到你。

于 2013-05-04T15:33:30.967 回答