2016-07-18 3 views
0

DynamoDB 서비스에서 내 테이블을 검색하는 DynamoDBScanExpression이 있습니다. DB 매핑 클래스는 Item.class입니다.
ScanExpression을 사용하는 이유는 ListView에 대한 어댑터라는 것입니다.부울 속성으로 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); 
관련 문제