Я пытаюсь сделать свой 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)
, но делает совершенно противоположную вещь.
Есть идеи?
Спасибо!