gpt4 book ai didi

java - 如何使用 Java 从 Google App Engine 数据存储中的实体中提取属性

转载 作者:行者123 更新时间:2023-11-30 07:01:57 25 4
gpt4 key购买 nike

我正在使用 Google App Engine 并尝试从数据存储中查询/提取数据。我跟随了将近 20 个不同的教程,但没有任何运气。

这是我的数据存储区的图片以及我存储在其中的相应样本数据:

enter image description here

这是我必须提取数据的一些代码:

//To obtain the keys
final DatastoreService dss=DatastoreServiceFactory.getDatastoreService();
final Query query=new Query("Coupon");
List<Key> keys = new ArrayList<Key>();

//Put the keys into a list for iteration
for (final Entity entity : dss.prepare(query).asIterable(FetchOptions.Builder.withLimit(100000))) {
keys.add(entity.getKey());
}

try {
for (int i = 0; i < keys.size(); i++){
Entity myEntity = new Entity("Coupon", keys.get(i));

System.out.println("Size of the Keys array = " + keys.size());

String description = (String) myEntity.getProperty("desc");

String endDate = (String) myEntity.getProperty("endDate");

System.out.println("Description = " + description);
System.out.println("End Date: " + endDate);

//Map here is empty...
Map<String, Object> test = myEntity.getProperties();

System.out.println("MAP SIZE = " + test.size());
}
} catch (Exception e){
e.printStackTrace();
}

**OUPUT:**
Size of the Keys array = 2
Description = null
End date = null
MAP SIZE = 0

我不知道为什么描述和结束日期为空。它显然是在拉入正确的实体,因为大小显示为 2,这与显示的图片相符。此外,当我打印出 key 时,它也匹配

(类似这样的事情:对于 keys.get(i).toString(); -- 实体 [!global:Coupon(123)/Coupon(no-id-yet)]: .或者:Key String = !global:Coupon(5730827476402176)

我已尽我所能遵循文档 ( here ) 和一些示例 ( here ),但我似乎无法弄明白。有没有人对如何在拥有实体属性而不返回 null 的情况下从实体中获取属性有任何建议或经验?

我已经完成了以下 Stackoverflow 问题,但没有成功,所以请不要用一个简单的重复问号来关闭它:1) How do i get all child entities in Google App Engine (Low-level API)2) Storing hierarchical data in Google App Engine Datastore?3) How do you use list properties in Google App Engine datastore in Java?4) Mass updates in Google App Engine Datastore5) Checking if Entity exists in google app engine datastore. .

最佳答案

你试过吗?

//Put the keys into a list for iteration
for (final Entity entity : dss.prepare(query).asIterable (FetchOptions.Builder.withLimit(100000))) {


String description = (String) entity.getProperty("desc");

String endDate = (String) entity.getProperty("endDate");

System.out.println("Description = " + description);
System.out.println("End Date: " + endDate);
}

在您的示例中,您创建了实体并且预计属性将为空

关于java - 如何使用 Java 从 Google App Engine 数据存储中的实体中提取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29398082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com