gpt4 book ai didi

java - 如果属性不等于 DynamoDBMapper,则有条件写入项目

转载 作者:行者123 更新时间:2023-11-30 08:01:36 27 4
gpt4 key购买 nike

当您想要以下条件时,是否可以使用 DynamoDB 映射器进行有条件的写入/更新:如果属性不等于 X 则写入?我想做一个有条件的写,做这样的事情:

DynamoRecord record = mapper.load(DynamoRecord.class, hashKey);
if (record.getSomeAttr() != terminationValue) {
mapper.save(newRecord);
}

属性总是存在的。它可以有多个值,表示一个条件,在该条件之后应该停止对记录的更新。

我读了this articleAWS documentation和一堆其他帖子,但似乎只支持 == 运算符以及存在检查。是否可以使用映射器进行 != 条件写入?如果是这样,非常感谢任何指点。

谢谢。

@notionquest 的回答摘要

  1. 使用ComparisonOperator.NE
  2. 如果属性是 boolean 值,使用 @DynamoDBNativeBoolean 对其进行注释以获得正确的结果,同时使用 ExpectedAttributeValue(new AttributeValue().withBool(true))。参见 here了解详情。

最佳答案

对于 NOTEQUALS 条件,请使用“withComparisonOperator(ComparisonOperator.NE)”。引用下面的例子。

DynamoDBSaveExpression saveExpression = new DynamoDBSaveExpression();
Map expected = new HashMap();
expected.put("Status",
new ExpectedAttributeValue(new AttributeValue(status)).withComparisonOperator(ComparisonOperator.NE));
saveExpression.setExpected(expected);
dynamoDBMapper.save(obj, saveExpression);

关于java - 如果属性不等于 DynamoDBMapper,则有条件写入项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37426710/

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