DynamoDB сохраняет только если GSI не существует

Я пытаюсь сделать свой 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 ответов

Другие вопросы по тегам