[英]Arithmetic operation in condition expression DynamoDb Using the AWS SDK for Java
我有一个 dynamodb 表,我想使用 aws sdk java 库对其进行条件更新操作。 我有一个名为“Id”的哈希键和名为“Sk”的排序键的表。 我在表中有 5 个其他字段,我必须根据剩余字段的条件更新 2 个字段。 条件是“total_record_count = record_passed + records_failed”,其中total_record_count、record_passed和records_failed是表中的字段。 下面是代码
DynamoDB dynamoDB = new DynamoDB(amazonDynamoDB);
Table table = dynamoDB.getTable("ciw_ocrResponse_upload");
Map<String, String> expressionAttributeNames = new HashMap<String, String>();
expressionAttributeNames.put("#updatedAt", "updatedAt");
expressionAttributeNames.put("#statusOfTracker","statusOfTracker");
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
Map<String, Object> eav = new HashMap<>();
eav.put(":val1", value);
eav.put(":val2", timestamp.getTime());
UpdateItemSpec updateItemSpec = new UpdateItemSpec().withPrimaryKey("Id", requestId, "Sk", sortKey)
.withUpdateExpression("set #updatedAt = :val2, #statusOfTracker = :val1")
.withValueMap(eav)
.withNameMap(expressionAttributeNames)
.withConditionExpression(" total_record_count = record_passed + records_failed")
.withReturnValues(ReturnValue.UPDATED_NEW);
table.updateItem(updateItemSpec);
I am getting the error as Invalid ConditionExpression: Syntax error; token: "+", near: "record_passed + records_failed"
根据文档,不支持此算术运算。
解决方法是创建一个total_record_count
字段,您需要计算并添加创建的每个新项目。 还可以将其添加到所有现有项目中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.