2016-02-03 45 views
0

我們正在嘗試使用Dynamo db開始工作,並且我正在爲映射問題而頭痛。DynamoDB在地圖中存儲/映射覆雜對象

我有一個模型匹配和matchPlayer。

Match有一個包含matchPlayer對象的map屬性。

我無法使dynamodb正確映射此屬性。 我試圖JSON的Marshaller但只是導致爲錯誤

在值

預期Š{L:{player2 = {M:(更多JSON)

是否有用於映射任何很好的例子或教程/編組一個映射與複雜的對象與dynamodb一起工作?我找到了簡單複雜對象的教程,但沒有使用對象圖。

我很高興任何幫助!

@DynamoDBTable(tableName="Matches") 
public class Match { 

    private String matchId; 
    private Boolean active; 
    private int currentRound; 
    private Boolean finished; 

    private Map<String, MatchPlayers> players; 

    @DynamoDBHashKey(attributeName = "matchId") 
    public String getMatchId() { 
     return matchId; 
    } 

    public void setMatchId(String matchId) { 
     this.matchId = matchId; 
    } 
    @DynamoDBIndexRangeKey(attributeName = "active") 
    public Boolean getActive() { 
     return active; 
    } 

    public void setActive(Boolean active) { 
     this.active = active; 
    } 


    @DynamoDBIndexRangeKey(attributeName = "currentRound") 
    public int getCurrentRound() { 
     return currentRound; 
    } 

    public void setCurrentRound(int currentRound) { 
     this.currentRound = currentRound; 
    } 

    @DynamoDBIndexRangeKey(attributeName = "finished") 
    public Boolean getFinished() { 
     return finished; 
    } 

    public void setFinished(Boolean finished) { 
     this.finished = finished; 
    } 

    @DynamoDBMarshalling(marshallerClass = MatchPlayersMarshaller.class) 
    @DynamoDBIndexRangeKey(attributeName = "players") 
    public Map<String, MatchPlayers> getPlayers() { 
     return players; 
    } 

    public void setPlayers(Map<String, MatchPlayers> players) { 
     this.players = players; 
    } 
} 

回答

1

Android的DynamoDB Object Mapper目前不支持數組和映射的複雜數據類型映射。您需要手動將字典映射到自己的自定義對象。

+0

這就是我所做的感謝 –