DynamoDB сохраняет только если GSI не существует - PullRequest
0 голосов
/ 30 января 2019

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

Есть идеи?

Спасибо!

...