1.确认查询语句的属性名称和数据类型是否正确,可能会导致序列化异常。
2.检查查询语句参数的数据类型是否正确,例如如果属性类型为整数,则查询参数应为整数类型。以下是一个示例查询代码:
DynamoDBMapper mapper = new DynamoDBMapper(AmazonDynamoDBClientBuilder.defaultClient());
DynamoDBQueryExpression queryExpression = new DynamoDBQueryExpression()
.withKeyConditionExpression("id = :val1 and timestamp between :val2 and :val3")
.withExpressionAttributeValues(
new HashMap(){{
put(":val1", new AttributeValue().withN("123"));
put(":val2", new AttributeValue().withN("1459468800"));
put(":val3", new AttributeValue().withN("1459555199"));
}}
);
List list = mapper.query(MyObject.class, queryExpression);
注意,在此示例中,我们使用'withN”方法确定查询参数的数据类型正确,并在查询语句中使用正确的属性名称。