2015-04-23 97 views
0

我使用java通过Google Cloud Endpoints和数据存储编程API。我只是添加了一个ArrayList<HashMap<String, String>>作为我的一个实体的字段,但它似乎不被Cloud Endpoints识别。我使用Objectify框架。ArrayList <HashMap <String,String>使用云端点?

起初,我注意到一些NullPointerException因为它发生,然后我看到该字段甚至没有提到的数据存储查看器。

此类型不受数据存储区支持吗?

+0

...为什么你需要一个地图列表?这与你的实际问题无关,但我很好奇。 –

+0

在我的应用程序中有一个小游戏,所以我需要存储地图列表,每个地图代表一个玩家(有三个键/值对:名称,ID和分数) – Gannicus

+1

看起来这是一个更适合特殊工作的工作'玩家'对象,而不是地图。我假设Google支持自定义对象,但我承认我不确定这一点。如果不是,请不理我。 –

回答

0

该数据存储区和云端点编组人员均应支持该字段。请记住,空集合在数据存储上存储为空值。

如果实体存储为空集合,则必须在检索时初始化集合。

说了我同意@QPaysTaxes的建议,从长远来看,如果将它包装到POJO中,您可以节省很多痛苦。哪个BTW可以通过ID引用,而不必在整个地方复制数据。

+0

是的,它被支持,似乎我没有正确初始化字段。是的,@QPaysTaxes建议的POJO解决方案比Map更好,所以我实现了它。感谢你们俩 – Gannicus

0

通过Objectify,您可以存储任何POJO,您是否可以使用开发人员控制台检查该字段是否出现?

顺便提一下,一个云端点可以返回任何对象(但不是原始的一种,像INT布尔)。所以在这个问题上不会有问题。

+0

我检查了新的开发者控制台和旧的控制台,每个字段都出现在这个字段之外。虽然你说这可能是一种解脱,但我仍然想知道发生了什么。 – Gannicus

相关问题