Фильтровать DynamoDBScanExpression по логическому атрибуту

android amazon-web-services boolean amazon-dynamodb

640 просмотра

1 ответ

64 Репутация автора

У меня есть DynamoDBScanExpression, который сканирует мою таблицу в службе DynamoDB. Класс отображения БД есть Item.class.
Причина, по которой я использую ScanExpressionэто то, что это адаптер для ListView.

Что я хочу сделать, так это отфильтровать ScanExpressionрезультаты boolean, поэтому я получу только те результаты, в которых будет находиться атрибут «текст» true.

Я пытался проверить, когда значение атрибута равно String "true", но это не сработало.

DynamoDBScanExpression dbScanExpression = new DynamoDBScanExpression();
Condition condition = new Condition()
    .withComparisonOperator(ComparisonOperator.EQ)
    .withAttributeValueList(new AttributeValue("true"));
dbScanExpression.addFilterCondition("text", condition);
List<Item> itemsList = dbMapper.scan(Item.class, dbScanExpression);

Как я могу отфильтровать ScanExpression, чтобы получить только строки со trueзначением в атрибуте «текст»?

Автор: Ido Источник Размещён: 18.07.2016 08:00

Ответы (1)


2 плюса

21129 Репутация автора

Решение

Определите поле с помощью приведенной ниже аннотации и отсканируйте таблицу, как указано ниже (т.е. с помощью нового AttributeValue (). WithBOOL (true)).

@DynamoDBNativeBoolean
@DynamoDBAttribute(attributeName = "text")
public Boolean getStatusCode() {
    return text;
}

Condition condition = new Condition().withComparisonOperator(ComparisonOperator.EQ)
        .withAttributeValueList(new AttributeValue().withBOOL(true));
dbScanExpression.addFilterCondition("text", condition);
Автор: notionquest Размещён: 18.07.2016 08:16
Вопросы из категории :
32x32