使用dynamodb自动生成的主键(UUID)

时间:2019-11-04 18:10:01

标签: java amazon-dynamodb

我是这个数据库的新手,目前正在尝试编写一个小型Java应用程序并使用dynamodb处理数据。

根据要求,我需要使用自动生成的id作为主键,并将另一个属性设置为索引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作为主键,有没有更简单的方法来完成这些操作?

0 个答案:

没有答案