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)
, но делает с точностью до наоборот.
Есть идеи здесь?
Спасибо!