В приведенном ниже коде условие языкового фильтра является необязательным, может ли оно содержать данные или иметь значение NULL.Если он содержит нуль, означает, что DynamodB выдает ошибкуКак это преодолеть?
Карта expressionAttributesNames = new HashMap <> ();expressionAttributesNames.put ("# Language", "Language");
Map<String,AttributeValue> expressionAttributeValues = new HashMap<>();
//expressionAttributeValues.put(":docType", new AttributeValue().withS("cp"));
expressionAttributeValues.put(":docName", new AttributeValue().withS("data part"));
//expressionAttributeValues.put(":docKey", new AttributeValue().withS("xxx yyy"));
expressionAttributeValues.put(":language", new AttributeValue().withS(null));
DynamoDBQueryExpression<Tools> queryExpression = new DynamoDBQueryExpression<PuToolsbtools>()
.withKeyConditionExpression(keyConditionExpression)
.withExpressionAttributeNames(expressionAttributesNames)
.withExpressionAttributeValues(expressionAttributeValues)
.withFilterExpression("#Language = :language"); List<Toolsools> tools = mapper.query(Tools.class, queryExpression);
Исключение составляет,
ExpressionAttributeValues содержит недопустимое значение: Supplied AttributeValue пусто, должно содержать ровно один из поддерживаемых типов данныхдля ключа: язык (Сервис: AmazonDynamoDBv2; Код состояния: 400; Код ошибки: ValidationException;