gpt4 book ai didi

java - 在 dynamodb 映射器中使用连字符作为键名

转载 作者:行者123 更新时间:2023-11-30 06:14:24 24 4
gpt4 key购买 nike

我收到无效的 KeyConditionExpression:语法错误; token: "-", 当键名有连字符时,near:foo-bar。我尝试使用 with 表达式属性名称和属性值,但仍然遇到相同的错误。我该如何解决这个问题?

Invalid KeyConditionExpression: Syntax error; token: "-", near:
Map<String,String> eak = new HashMap<>();

eak.put("#k","foo-bar");
Map<String, AttributeValue> eav = new HashMap<>();
eav.put(":v", new AttributeValue().withS("val"));
DynamoDBQueryExpression<J> queryExpression = new DynamoDBQueryExpression<J>()
.withKeyConditionExpression("#k = :v")
.withExpressionAttributeNames(eak)
.withExpressionAttributeValues(eav)
.withScanIndexForward(true);

最佳答案

在使用 KeyConditionExpression 时,您似乎不能拥有包含连字符 foo-bar 的列。

在您的示例中,.withKeyConditionExpression("#k = :v")
• 扩展为 .f("foo-bar = val"),
• 类似于.f("foo - bar = val")(注意- 周围的空格)。

- 不再解释为列名称中的字符,而是解释为操作数。
由于显而易见的原因,这将引发错误,因为 - 不在允许的位置。

关于java - 在 dynamodb 映射器中使用连字符作为键名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49543643/

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