java - 无法从 DynamoDB 加载数据,因为 List<Object> 类型的属性无法未转换并使用@DynamoDBDocument 保存

标签 java amazon-web-services amazon-dynamodb

我正在尝试使用@DynamoDBDocument 保存 List<CustomObject>,但它给了我一个 DynamoDBMappingException:无法取消转换属性。

这是我的实体类的样子 -

@lombok.Data
@DynamoDBTable(tableName = "carTable")
public class Car {
   @DynamoDBHashKey(attributeName = "name")
   private carName;

   @DynamoDBRangeKey(attributeName = "model")
   private carModel;

   @DynamoDBAttribute(attributeName = "manufacturers")
   private List<Manufacturer> manufacturers;
}

制造商类看起来像 -

@lombok.Data
@DynamoDBDocument
public class Manufacturer {
    @DynamoDBAttribute
    private String manufacturerName;
}

当使用此实体并将值保存到表中时,它会正确保存为 JSON,但在检索它时会抛出异常 -

com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: Car[manufacturers]; could not unconvert attribute
at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperTableModel.unconvert(DynamoDBMapperTableModel.java:271)
[junit]     at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.privateMarshallIntoObject(DynamoDBMapper.java:456)
[junit]     at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:422)
[junit]     at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:433)
[junit]     at com.amazonaws.services.dynamodbv2.datamodeling.AbstractDynamoDBMapper.load(AbstractDynamoDBMapper.java:85)

我在这里缺少什么,我需要在这里添加某种 TypeConverter 或 Marshaller 吗?

最佳答案

需要无参数构造函数来取消转换属性,将 @lombok.NoArgsConstructor 添加到 Manufacturer 类解决了我的问题。

关于java - 无法从 DynamoDB 加载数据,因为 List<Object> 类型的属性无法未转换并使用@DynamoDBDocument 保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45371805/

相关文章:

java - 使用 Hibernate 用 transient 对象更新持久对象

amazon-web-services - 更改 Elastic beanstalk 的 EC2 容器类型

java - 是否可以让非阻塞服务器和阻塞 I/O 客户端进行通信?

java - 使用对象编写器。即使我关闭文件,也会给我 EOF 异常。

amazon-web-services - SQL Athena 上的 Date_Part - "Function date_part not registered"

amazon-web-services - AWS 云形成 cfn 信号 : command not found

javascript - 查询 dynamodb 时找不到资源

amazon-web-services - 无法解码 dynamodb 属性

javascript - 使用基于 AWS Cognito 和 IAM 角色的 AWS DynamoDB 直接从客户端(Web 应用程序)访问的安全漏洞是什么

java - GWT:解析 CSS 样式属性