我的用例是我需要在我的一个DynamoDB表中使用UUID作为主键。我正在使用@DynamoDBAutoGeneratedKey,我可以使用UUID。我也明白自动生成的密钥可以在写入dynamo db之后立即从发送到Dynamo db的实体中检索。但我担心的是,是否有任何干净的方法可以在应用程序的任何位置检索自动生成的密钥,或者我是否需要将自动生成的密钥存储在内存中?或者我应该实现二级索引来检索自动生成的密钥?
答案 0 :(得分:0)
注意: - OP没有用于通过主键获取数据的用例所需的信息。我认为最终的主张可能不是获得UUID。相反,它可能是使用UUID获取项目。
一些常规选项如下: -
如果您不知道自动生成UUID的哈希键,
1)扫描表格以获取自动生成的密钥。请注意,这是一个全表扫描,这将是一个昂贵的操作。
2)是的,全局二级索引可用于通过不同的属性查询表,即除了在主表中定义为哈希键的UUID字段之外。如果主表的哈希键未知,则这是更有效的选项。
3)我不确定完整的用例。但是,如果相同的HTTP请求或进程稍后将为新插入的UUID获取数据,则可以将UUID保留在内存中(即使用Java集合)以便稍后使用它。在这种情况下,实际上您可以保留先前在内存中插入的整个对象。