amazon-dynamodb - DynamoDB 对象集插入和获取
问题描述
我有以下 DynamoDB 表
@Builder
@DynamoDBTable(tableName = "rule_templates")
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class DynamoRuleTemplate {
private String id;
private DataType dataType;
private String displayName;
private String helpText;
private String expression;
private Set<Param> params;
@DynamoDBHashKey(attributeName = "id")
public String getId() {
return id;
}
@DynamoDBAttribute(attributeName = "data_type")
public DataType getDataType() {
return dataType;
}
@DynamoDBAttribute(attributeName = "display_name")
public String getDisplayName() {
return displayName;
}
@DynamoDBAttribute(attributeName = "help_text")
public String getHelpText() {
return helpText;
}
@DynamoDBAttribute(attributeName = "expression")
public String getExpression() {
return expression;
}
@DynamoDBTypeConverted(converter = ParamSet.class)
@DynamoDBAttribute(attributeName = "params")
public Set<Param> getParams() {
return params;
}
}
这是参数类:
@Data
public class Param {
private DataType dataType;
private String identifier;
private String displayName;
private String helpText;
}
我正在通过 AWS CLI 用一些 json 形式的数据预先填充表格,例如:
{
"id": {
"S": "string-length-range"
},
"data_type": {
"S": "STRING"
},
"display_name": {
"S": "String length range"
},
"expression": {
"S": "$val.length() <= $max && $val.length() >= $min"
},
"help_text": {
"S": "String length range"
},
"params": {
"L": [
{
"M": {
"dataType": {
"S": "INTEGER"
},
"displayName": {
"S": "max"
},
"identifier": {
"S": "$max"
}
}
},
{
"M": {
"dataType": {
"S": "INTEGER"
},
"displayName": {
"S": "min"
},
"identifier": {
"S": "$min"
}
}
}
]
}
}
但是在使用 JAVA 应用程序从表中执行 GET 时,我在params字段中收到以下错误:com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: expected S in value {L: [{M: {identifier={ S: $max,}, displayName={S: max,}, dataType={S: INTEGER,}},}, {M: {identifier={S: $min,}, displayName={S: min,} , dataType={S: INTEGER,}, rule={M: {表达式={S: $min >= 0,}},}},}],}
有人可以帮助我使用正确的 json,以免出现上述错误吗?
解决方案
推荐阅读
- c - 如何修复“赋值使指针从整数而不进行强制转换 [-Wint-conversion]”?C unix程序
- r - RBioFormats 库需要 Internet 连接才能加载
- javascript - 当涉及两个输入时,jQuery blur 事件会多次触发
- mysql - 如何为以下结构制定查询和视图?
- python - 如何在熊猫列具有 NULL 值时将其转换为 int?
- python - 无法反序列化为对象:类型,KeyError:'键:int;值:str'
- c# - 如何通过 c# win app 将 Crystalreport 导出为 pdf 文件?(每次导出到 1 个文件的 1 条记录。)
- javascript - 是否可以通过 transform:rotate(Xdeg) 获得平滑的 CSS 过渡到 0 度?
- angularjs - 将 angularJS 指令转换为 Angular 打字稿
- php - 从 json 中创建一个具有未知数量循环的多维关联数组