在Google App Engine中创建实体

时间:2013-12-14 19:38:12

标签: java google-app-engine google-cloud-datastore

不确定这是否可行,但总是值得问。

我已经简化了下面的问题 - 基本上,我想使用for循环来创建同一类型的多个实体。问题似乎是我无法通过调用变量来命名新实体。

有人能想出解决这个问题的方法吗?任何帮助将不胜感激。

非常感谢

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Key roomkey = KeyFactory.createKey("E15", "ids");

String test = "";
for (int x = 0; x < 7; x++) {
   test = ("" + Integer.toString(x));
   Entity test = new Entity("E15", roomkey);
}

3 个答案:

答案 0 :(得分:1)

假设您正在尝试创建7个类型为E15的实体,其键名为“0”到“6”

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
for (Integer n = 0 ; n < 7 ; ++n ) {
    Entity entity = new Entity("E15", n.toString());
    datastore.put(entity);
}

最后一点很重要。仅仅创建Entity的实例并不会持续存在。

答案 1 :(得分:0)

您可以通过aslo为其指定key_name或id:

来创建实体
Entity entry = new Entity("E15", key_name, roomkey);

,或者

Entity entry = new Entity("E15", id, roomkey);

以后你可以获得实体:

Key key = KeyFactory.createKey(roomkey, "E15", id);
Entity entry = datastore.get(key);

答案 2 :(得分:0)

Entity entity = new Entity("YourKindName",String|Long);

Entity entity = new Entity("YourKindName",""+x);//using string as key
//or
Entity entity = new Entity("YourKindName",x);//using number as key