AWS DynamoDBテーブル内に文字列の配列を格納しようとしています。ほとんどの場合、この配列には少なくとも1つの文字列が設定されます。しかし、配列が空の場合があります。AWS DynamoDBで空のJava文字列を処理する方法
私はDynamoDBモデルをJava Lambda関数で作成しました。このモデルでは、一連の文字列がそのプロパティの1つとして含まれています。文字列のセットが空のときに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);
}
}
}
初めてグループを作成します。ユーザーがいないか、1人以上のユーザーがいる可能性があります。
AWSのテクニカルサポートでは、既存のアイテムを実際に削除して、同じプライマリインデックスを持つ新しいアイテムを作成し、nullになるプロパティを残して再作成することをお勧めします。私はこれを試して、それと運がなかった。 –
これは、この種の状況にJava POJOクラスを使用できないことを意味しますか? –