java - 错误属性名称是保留关键字
问题描述
我的 dynamoDb 中有数据,例如
我的数据库使用 priceId 作为 PrimaryKey 和 symbol 作为 sortKey 和其他是属性
我尝试使用此代码
Table table = dynamoDB.getTable(tableName);
System.out.println("runFirstTime For Search Data");
String Symbols = "EURUSD";
String time = "2020-06-10 06:08:07";
try{
Item item = table.getItem("symbol", Symbols, "Time", time, "symbol, Price, Time", null);
System.out.println("Displaying retrieved items...");
String price = item.getString("Price");
System.out.println(price);
System.out.println(item.toJSONPretty());
}catch (Exception e) {
System.err.println("Cannot retrieve items.");
System.err.println(e.getMessage());
}
但我遇到了一个错误
Invalid ProjectionExpression: Attribute name is a reserved keyword; reserved keyword: Time (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: 5QP69C4BA99JP3LKTKIL8NHB7RVV4KQNSO5AEMVJF66Q9ASUAAJG; Proxy: null)
我已经更新了我的数据库结构,将符号作为primaryKey,priceId是sortKey,其他是属性:
当我使用此代码时
Table table = dynamoDB.getTable(tableName);
System.out.println("runFirstTime For Search Data");
String Symbols = "EURUSD";
String time = "2020-06-10 09:12:07";
try{
//GetItemSpec spec = new GetItemSpec().withPrimaryKey("symbol", Symbols).
Item item = table.getItem("symbol", Symbols, "savetime", time, "symbol, Price, savetime", null);
System.out.println("Displaying retrieved items...");
String price = item.getString("Price");
System.out.println(price);
System.out.println(item.toJSONPretty());
}catch (Exception e) {
System.err.println("Cannot retrieve items.");
System.err.println(e.getMessage());
}
我收到一个错误,例如:The provided key element does not match the schema (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: KFCMB4GVB2QC7PAQD6AN5CE5HRVV4KQNSO5AEMVJF66Q9ASUAAJG; Proxy: null)
我的问题是:1.为什么会出现这样的错误?2. 如果我想得到所有的价格,如何使用一个叫做符号的主键和一个叫做保存时间的属性来编码或设置我的数据库?3. 任何如何从 dynamoDb 中检索数据的示例
解决方案
- 您已使用保留字Time作为属性名称,请尝试为该属性定义不同的名称。
您可以在此处查看保留名称列表:https ://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html
- 要获取所有价格,您可以使用Scan并在ProjectionExpression中设置Price。
在此处查看 Java 文档:https ://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ScanJavaDocumentAPI.html
推荐阅读
- python - pandas 加列,注意一个Series的真值是不明确的
- python - 了解 Docker 使用 Docker-Alpine-Python-Flask 编写 Nginx-Proxy
- java - 从arraylist中获取接下来的几个项目
- uwp-xaml - 可以在uwp的导航栏中添加扩展器控件吗?
- android - 颤振类级别变量布尔不起作用
- d3.js - 如何创建具有垂直线和不同背景的折线图?
- javascript - 如何找到相邻元素?
- android - Android SmsManager 从 sqlite 数据库向多个收件人发送消息
- react-native - WebStorm 自动完成和自动导入不起作用
- android - Android:如何在模拟器等真实设备中查看应用程序日志?