Я новичок в этой базе данных, в настоящее время пытаюсь написать небольшое Java-приложение и обработать данные с помощью DynamodB.
В качестве требования мне нужно использовать автоматически сгенерированный идентификатор в качестве первичного ключа и установить другой атрибут какindex hashkey, аннотация выглядит следующим образом:
@DynamoDBGeneratedUuid( DynamoDBAutoGenerateStrategy.CREATE )
private UUID id;
@DynamoDBAutoGeneratedKey
@DynamoDBHashKey(attributeName="id")
@XmlElement(name="id")
public UUID getId() {
return id;
}
public void setId(UUID id) {
this.id = id;
}
@DynamoDBIndexHashKey(attributeName="courseId", globalSecondaryIndexName = "courserId-index")
@XmlElement(name="courseId")
public String getCourseId(){
return this.courseId;
}
public void setCourseId(String courseId){
this.courseId=courseId;
}
Я узнал, что всякий раз, когда я выполняю операцию обновления или удаления, я должен передавать первичный ключ, но как я могу узнать первичный ключ (он случайный)прежде чем делать какой-либо запрос? Единственный обходной путь, который я могу найти, - это использовать выражение фильтра, чтобы сначала получить первичный ключ с ключом хеш-индекса (в приведенном выше коде, courseId), а затем выполнить операции обновления / удаления с первичным ключом, но я просто чувствую, что этонеправильно. Есть ли более простой способ выполнить эти операции, если использовать UUID в качестве первичного ключа?