使用 Java SDK v2 从 dynamodb 扫描地图列表

问题描述

我正在尝试扫描具有地图列表作为属性值的 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...