У меня есть следующая таблица 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;
}
}
Вот класс Param :
@Data
public class Param {
private DataType dataType;
private String identifier;
private String displayName;
private String helpText;
}
Я предварительно заполняю таблицу некоторыми данными в форма от json до AWS CLI, например:
{
"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"
}
}
}
]
}
}
Но при выполнении GET из таблицы с использованием приложения JAVA я получаю следующую ошибку для params поле: com.amazon aws .services.dynamodbv2.datamodeling.DynamoDBMappingException: ожидаемое S в значении {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, чтобы я не получил выше ошибка?