Java 发电机B。如何扫描包含内容的列表

Java 发电机B。如何扫描包含内容的列表,java,amazon,amazon-dynamodb,Java,Amazon,Amazon Dynamodb,我已尝试编写simmilar扫描请求: Caused by: com.amazonaws.AmazonServiceException: Invalid FilterExpression: Syntax error; token: "contains", near: "path contains :p_prefix" 但是它不起作用。在布尔值(:p_已删除)上有冒号而在字符串(:p_前缀)上没有冒号是正常的吗?不,这不正常,谢谢!但是它没有使用“:”从错误中可以看出,您似乎无法测试filter

我已尝试编写simmilar扫描请求:

Caused by: com.amazonaws.AmazonServiceException: Invalid FilterExpression: Syntax error; token: "contains", near: "path contains :p_prefix"

但是它不起作用。

在布尔值(:p_已删除)上有冒号而在字符串(:p_前缀)上没有冒号是正常的吗?不,这不正常,谢谢!但是它没有使用“:”从错误中可以看出,您似乎无法测试filterexpression中键中的“contains”。我不是这方面的专家,但我认为您只能测试键的相等性,而不能测试子属性?扫描可以读取嵌套查询。(子属性)
ScanSpec scanSpec = new ScanSpec().withScanFilters( new ScanFilter[] { typeFilter, deletedFilter } ).withConditionalOperator( ConditionalOperator.AND );
ScanSpec scanSpec = new ScanSpec().withScanFilters( new ScanFilter[] { typeFilter, deletedFilter } ).withConditionalOperator( ConditionalOperator.AND );
 ValueMap values = new ValueMap().withString( ":p_status", "READY" ).withString( ":p_prefix", prefix );

NameMap names = new NameMap().with( "#status_name", "status" ).with( "#path_name", CDynamoDbCommon.RANGE_KEY_NAME );


scanSpec = new ScanSpec()
    .withFilterExpression( UAwsBasic.DATABASE_JSON_DEFINITION_NAME + ".#status_name = :p_status AND contains( #path_name , :p_prefix)" )
    .withNameMap( names ).withValueMap( values )
    .withMaxResultSize( 10 ).withExclusiveStartKey( CDynamoDbCommon.PRIMARY_KEY_NAME, primaryLast, CDynamoDbCommon.RANGE_KEY_NAME, hashLast );