问题描述
我正在尝试扫描具有地图列表作为属性值的 DynamoDB 表。
DynamoDB 表:
{
"Name": "n","Accounts": [
{
"address": "a","name": "b"
},{
"address": "c","name": "d"
}
}
目标 Java 对象:
@DynamoDbBean
public class Target {
public String Name;
public List<HashMap<String,String>> Accounts;
//getters setters
@DynamoDbPartitionKey
public String getName() {
return Name;
}
}
我收到以下错误:
java.lang.IllegalStateException: Converter not found for EnhancedType(java.util.List<java.util.HashMap<java.lang.String,java.lang.String>>)
我知道这种嵌套结构不支持 out-ob-Box,所以我需要提供一个转换器来告诉它如何将 DynmaoDB 对象映射到我的 java 类。
我已经开始实施 StaticTableSchema,但是我不知道如何申请我的案例:
final StaticTableSchema<Target> build = StaticTableSchema.builder(TargetCompany.class).newItemsupplier(TargetCompany::new)
.addAttribute(String.class,a ->a.name("Name").getter(TargetCompany::getName).setter(TargetCompany::setName))
.addAttribute(EnhancedType.listof(EnhancedType.mapOf(String.class,String.class)),a->a.name("Accounts") ??????
.setter(TargetCompany::setAccounts)
还有一些转换器接口可以实现,但此时我被卡住了。我使用的是 Java SDK v2,所以我通常会找到 v1 的示例,但它们仍然仅适用于原始类型,而不是像我这样的复杂情况。
知道如何将我的 DynamoDB 属性值映射到我的 Java 对象吗?
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)