我试图在AWS DynamoDB表中存储字符串数组。大多数情况下,这个数组至少会填充一个字符串。但是,数组可能是空的。如何处理AWS DynamoDB中的空字符串集合
我在Java Lambda函数中创建了一个DynamoDB模型,该函数将一组字符串作为它的一个属性。如果在字符串集为空时尝试保存DynamoDB模型,则会给我一个错误,说我无法在DynamoDB中存储空集。
所以我的问题是,如何处理从我的模型中删除该设置属性之前,我保存/更新它在DynamoDB中?
下面是一个模型的例子。
@DynamoDBTable(tableName = "group")
public class Group {
private String _id;
private Set<String> users;
@Null
@DynamoDBHashKey
@DynamoDBAutoGeneratedKey
public String getId() {
return _id;
}
public void setId(final String id) {
_id = id;
}
@DynamoDBAttribute
public Set<String> getUsers(){
return users;
}
public void setUsers(final Set<String> users) {
this.users = users;
}
public void addUser(String userId) {
if(this.users == null){
this.setUsers(new HashSet<String>(Arrays.asList(userId)));
}else{
this.getUsers().add(userId);
}
}
}
第一次当我创建一个组。它可以没有用户,也可以有一个或多个用户。
基于我与AWS技术支持人员就此进行的进一步交谈,听起来好像公认的做法是实际删除现有项目并重新创建具有相同主索引的新项目,而忽略属性为空的项目。我试过这个,没有任何运气。 –
那意味着我们不能在这种情况下使用任何Java POJO类? –