gpt4 book ai didi

Java DynamoDB——仅在键不存在时插入(没有映射器)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:41:37 25 4
gpt4 key购买 nike

如果键不存在,我只想插入这一行。如果键已经存在,我不想覆盖该行。

我的语法是这样的:

new PutItemRequest().withTableName(myTableName).withItem(myItem).withConditionExpression(?)

根据 the AWS docs ,我会使用类似属性 ATTRIBUTE_NOT_EXISTS 的东西。我也可以使用 ComparisonOperator.NULL 等。据我所知。

语法提示?对此 withConditionExpression 机制的一些解释?

最佳答案

文档说 ConditionExpression 替换了遗留的 ConditionalOperator(.NULL)。你可以走两条路线,但你应该使用 .withConditionExpression(...) 而不是操作数路线。

还有https://java.awsblog.com/post/TxBG87QOQZRZJF/DynamoDB-XSpec-API用于更复杂的表达式。

但在你的情况下,它应该通过写作来工作

.withConditionExpression("attribute_not_exists(thingId)")

假设您的哈希键属性名为 thingId。该方法也记录在此处:http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html

To prevent a new item from replacing an existing item, use a conditional expression that contains the attribute_not_exists function with the name of the attribute being used as the HASH key for the table. Since every record must contain that attribute, the attribute_not_exists function will only succeed if no matching item exists.

关于Java DynamoDB——仅在键不存在时插入(没有映射器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32705958/

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