gpt4 book ai didi

java - 使用适用于 Java 的 AWS 开发工具包在条件表达式 DynamoDb 中进行算术运算

转载 作者:行者123 更新时间:2023-12-02 08:58:18 24 4
gpt4 key购买 nike

我有一个 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"

最佳答案

根据docs不支持此算术运算。

解决方法是创建一个 total_record_count 字段,您需要计算该字段并将其添加到创建的每个新项目上。还将其添加到所有现有项目中。

关于java - 使用适用于 Java 的 AWS 开发工具包在条件表达式 DynamoDb 中进行算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60354691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com