gpt4 book ai didi

java - 从 DynamoDB 获取值时如何编码/取消编码对象类型

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

我有一个 DynamoDB 表,其中有列。其中两列始终具有相同的数据类型,而一列的数据类型会有所不同。使用 DynamoDB 时如何解码/编码它。下面是我的 DTO。

private Integer id;
private String name;
private Object value;

它不允许直接映射“值”字段并抛出异常。

请在这方面帮助我。

最佳答案

将该字段声明为:-

@CustomObjectFormat(separator = " ")
public Object getValue() {
return value;
}

示例 CustomObjectFormat 代码:-

以下实现使用 toString() 将所有内容转换为 String 并在 DynamoDB 数据库中保留为 String 数据类型。

@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 将相应地调用自定义convertunconvert 进行保存和检索。

dynamoDBMapper.save(accounts);

DynamoDBTypeConverted JavaDoc

关于java - 从 DynamoDB 获取值时如何编码/取消编码对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40416539/

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