2015-04-23 39 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

相關問題