1
我有一個DynamoDB表,其中有列。其中兩個將始終具有相同的數據類型,而一列的數據類型會有所不同。如何在使用DynamoDB時解組/編組?以下是我的DTO。如何在從DynamoDB獲取值時編組/取消組織對象類型
private Integer id;
private String name;
private Object value;
它不允許直接映射「值」字段並拋出異常。
請在這方面幫助我。
我有一個DynamoDB表,其中有列。其中兩個將始終具有相同的數據類型,而一列的數據類型會有所不同。如何在使用DynamoDB時解組/編組?以下是我的DTO。如何在從DynamoDB獲取值時編組/取消組織對象類型
private Integer id;
private String name;
private Object value;
它不允許直接映射「值」字段並拋出異常。
請在這方面幫助我。
聲明字段: -
@CustomObjectFormat(separator = " ")
public Object getValue() {
return value;
}
樣品CustomObjectFormat代碼: -
下面的實現使用toString()
一切轉換爲字符串,並堅持在DynamoDB數據庫字符串數據類型。
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@DynamoDBTypeConverted(converter=CustomObjectFormat.Converter.class)
public @interface CustomObjectFormat {
String separator() default " ";
public static class Converter implements DynamoDBTypeConverter<String, Object> {
private final String separator;
public Converter(final Class<Currency> targetType, final CustomObjectFormat annotation) {
this.separator = annotation.separator();
}
public Converter() {
this.separator = "|";
}
@Override
public String convert(final Object o) {
return o.toString();
}
@Override
public Object unconvert(final String o) {
return o;
}
}
}
映射保存: -
DynamoDBMapper將相應地調用自定義convert
和unconvert
用於保存和檢索。
dynamoDBMapper.save(accounts);