仅当GSI不存在时,DynamoDB才保存

时间:2019-01-30 11:08:06

标签: kotlin amazon-dynamodb aws-java-sdk-2.x

我正在尝试使我的GSI(hashed_username)在应用程序级别上唯一。 到目前为止,出现了以下代码:

val dynamoDBSaveExpression = DynamoDBSaveExpression()
val expected = mapOf("hashed_username" to ExpectedAttributeValue(
                    AttributeValue().withS(user.username)
                ).withExists(false))
dynamoDBSaveExpression.withExpected(expected)
getMapper().save(user, dynamoDBSaveExpression)

我确实希望保存功能会抛出ConditionalCheckFailedException,因为具有提供的用户名的用户已经存在。 当我尝试运行此代码时,得到AmazonDynamoDBException: One or more parameter values were invalid: Value cannot be used when Exists is false for Attribute: hashed_username。 有趣的是,查询在withExists(true)时有效,但恰恰相反。

这里有什么想法吗?

谢谢!

0 个答案:

没有答案