Запрос DynamoDb с выражением фильтра в JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Запрос DynamoDb с выражением фильтра в Java

Сообщение Anonymous »

У меня есть таблица DynamoDb с именем school-data в AWS. Ниже приведен существующий код для получения всех школ с названием школы:

Код: Выделить всё

private DynamoDBQueryExpression createQueryBySchoolName(String schoolName) {
String matchSchoolName = "schoolName = :schoolName";
Map schoolNames = new HashMap();
schoolNames.put(":schoolName", new AttributeValue().withS(schoolName));

return new DynamoDBQueryExpression()
.withIndexName("schoolName-index")
.withKeyConditionExpression(matchSchoolName)
.withExpressionAttributeValues(schoolNames)
.withConsistentRead(false);
}
Приведенный выше запрос работает нормально. Но теперь мне нужно получить все школы с определенным названием и адресом. Итак, ниже представлены 3 столбца таблицы:

Код: Выделить всё

id   schoolName  details
Столбец с подробными данными выглядит следующим образом:

Код: Выделить всё

{
"zone": "North",
"type": "Convent",
"address": {
"id": "138",
"street1": "123 Street",
"street2": "456 Road"
}
}
Итак, мне нужно получить все школы с названием «ABC» и адресом улицы 1 как «123 Street». Итак, я обновил приведенный выше запрос, как показано ниже:

Код: Выделить всё

private DynamoDBQueryExpression createQueryBySchoolName(String schoolName) {
String matchSchoolName = "schoolName = :schoolName";
Map schoolNames = new HashMap();
schoolNames.put(":schoolName", new AttributeValue().withS(schoolName));
schoolNames.put(":streetName", new AttributeValue().withS("123 Street"));

return new DynamoDBQueryExpression()
.withIndexName("schoolName-index")
.withKeyConditionExpression(matchSchoolName)
.withFilterExpression("details.address.street1 = :streetName")
.withExpressionAttributeValues(schoolNames)
.withConsistentRead(false);
}
Но это не возвращает никаких данных. Подскажите пожалуйста, что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/617 ... on-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»