DynamoDB 在地图中存储/映射复杂对象
DynamoDB Storing/ Mapping Complex Objects in Maps
我们正在尝试开始使用 dynamo db,但我正在为一个映射问题而烦恼。
我有一个模型 Match 和 matchPlayer。
Match 有一个包含 matchPlayer 对象的地图 属性。
我无法让 dynamodb 正确映射此 属性。
我尝试了 json Marshaller,但这只会导致错误
预期 S 的价值 {M: {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;
}
}
Android 的 DynamoDB 对象映射器目前不支持数组和映射的复杂数据类型映射。您需要自己手动将字典映射到自定义对象。
我们正在尝试开始使用 dynamo db,但我正在为一个映射问题而烦恼。
我有一个模型 Match 和 matchPlayer。
Match 有一个包含 matchPlayer 对象的地图 属性。
我无法让 dynamodb 正确映射此 属性。 我尝试了 json Marshaller,但这只会导致错误
预期 S 的价值 {M: {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;
}
}
Android 的 DynamoDB 对象映射器目前不支持数组和映射的复杂数据类型映射。您需要自己手动将字典映射到自定义对象。