我正在尝试使我的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)
时有效,但恰恰相反。
这里有什么想法吗?
谢谢!