Dynamodb SDK v2 - 如何映射 hashMap 属性字段?

问题描述 投票:0回答:1

我有一个来自之前使用 SDK v1 实现的 dynamodb 项目 UserOrders:

@Getter
@Setter
public class UserOrders {

    @DynamoDBHashKey
    private String userId;

    @DynamoDBAttribute
    private HashMap<String, Double> orders;
}

我只是使用@DynamoDBAttribute来映射订单字段。

现在我正在从 SDK v1 迁移到 V2。

用户订单更改为:

@Getter
@Setter
@DynamoDbBean
public class UserOrders {

    private String userId;

    private HashMap<String, Double> orders;

    @DynamoDbPartitionKey
    public String getUserId() {
        return this.userId;
    }
}

但是当我使用增强型客户端和 .query() 方法获取项目时,我收到错误:

java.lang.IllegalStateException: Converter not found for EnhancedType(java.util.HashMap<java.lang.String, java.lang.Double>)

我该如何解决这个问题? 我应该创建一个专用转换器吗?

amazon-dynamodb aws-sdk-java-2.0
1个回答
0
投票

在类中使用 Map 而不是 HashMap:

@Getter
@Setter
@DynamoDbBean
public class UserOrders {

    private String userId;

    private Map<String, Double> orders;

    @DynamoDbPartitionKey
    public String getUserId() {
        return userId;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.