2016-07-18 27 views
0

私はDynamoDBサービスで自分のテーブルをスキャンするDynamoDBScanExpressionを持っています。 DBマッピングクラスはItem.classです。
私がScanExpressionを使用しているのは、ListViewのアダプタだからです。Boolean属性でDynamoDBScanExpressionをフィルタリングします

は、私が何をしたいのか、booleanによってScanExpression結果をフィルタリングすることであるので、私は、属性「テキスト」はtrueなり結果のみを取得します。

属性の値が文字列 "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); 

どのように私は、「テキスト」属性にtrue値を持つ行のみを取得するためにScanExpressionをフィルタリングすることができますか?

答えて

0

下記のアノテーションを使用してフィールドを定義し、下記のように(つまり、新しいAttributeValue().BOOL(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); 
関連する問題