Ich versuche, ein Array von Zeichenfolgen innerhalb einer AWS DynamoDB-Tabelle zu speichern. In den meisten Fällen wird dieses Array mit mindestens einer Zeichenfolge gefüllt. Es gibt jedoch den Fall, dass das Array leer sein könnte.Wie handle ich mit einem leeren Java-Satz von Zeichenfolgen in AWS DynamoDB
Ich habe ein DynamoDB-Modell in einer Java-Lambda-Funktion erstellt, die eine Reihe von Zeichenfolgen als eine ihrer Eigenschaften enthält. Wenn ich versuche, ein DynamoDB-Modell zu speichern, wenn die Menge der Zeichenfolgen leer ist, gibt es eine Fehlermeldung, dass ich in DynamoDB keine leere Menge speichern kann.
Also meine Frage ist, wie würde das Entfernen dieser Set-Eigenschaft, wenn es leer ist von meinem Modell behandeln, bevor ich es in der DynamoDB speichern/aktualisieren?
Hier ist ein Beispiel für das Modell.
@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);
}
}
}
Das erste Mal, wenn ich eine Gruppe erstellen werde. Es könnte keinen Benutzer haben, oder es könnte einen oder mehrere Benutzer haben.
Basierend auf weiteren Gesprächen, die ich in Bezug auf diese mit AWS technischen Support hatte, klingt es nach der akzeptierten Praxis, das vorhandene Element tatsächlich zu löschen und ein neues Element mit dem gleichen Primärindex neu zu erstellen. Ich habe das versucht und hatte kein Glück damit. –
Das bedeutet, dass wir keine Java-POJO-Klasse für diese Art von Situation verwenden können? –