gpt4 book ai didi

java - DynamoDB 在 map 中存储/映射复杂对象

转载 作者:行者123 更新时间:2023-12-01 10:29:07 25 4
gpt4 key购买 nike

我们正在尝试开始使用 dynamo db,但我因映射问题而伤透了脑筋。

我有一个 Match 模型和 matchPlayer。

Match 有一个包含 matchPlayer 对象的 map 属性。

我无法让 dynamodb 正确映射此属性。我尝试了 json Marshaller 但这只会导致错误

值 {M: {player2={M:(更多 json)) 中的预期 S

是否有任何好的示例或教程来映射/编码具有复杂对象的 map 以与 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;
}
}

最佳答案

适用于 Android 的 DynamoDB 对象映射器当前不支持数组和映射的复杂数据类型映射。您需要自己手动将字典映射到自定义对象。

关于java - DynamoDB 在 map 中存储/映射复杂对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35189292/

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