小编Man*_*gni的帖子

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

我试图List<CustomObject>使用@DynamoDBDocument 保存,但它给了我一个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;
}
Run Code Online (Sandbox Code Playgroud)

制造商类看起来像 -

@lombok.Data
@DynamoDBDocument
public class Manufacturer {
    @DynamoDBAttribute
    private String manufacturerName;
}
Run Code Online (Sandbox Code Playgroud)

当使用此实体并将值保存到表中时,它将正确保存为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)
Run Code Online (Sandbox Code Playgroud)

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

java amazon-web-services amazon-dynamodb

6
推荐指数
1
解决办法
9365
查看次数

DynamoDb删除不存在的项目不会失败,为什么?

我正在从dynamodb表中删除一个dynamoDbMapper.delete(object)使用默认DynamoDBDeleteExpression 的不存在的记录

我期待出现某种异常,因为数据库中没有记录,但它什么也没做.它甚至没有返回类型,可以判断删除是成功还是失败.有没有办法添加一个删除表达式或某些东西,如果该项目不在数据库中,我的删除会抛出异常?

amazon-web-services amazon-dynamodb

6
推荐指数
2
解决办法
3801
查看次数

git恢复到某些提交,而无需更改历史记录并创建新的提交,例如git revert

有没有一种方法可以还原到某个提交而不更改远程历史记录,基本上像git revert一样撤消对该提交所做的所有更改到一个新提交中?

例如-我有3次提交,提交A-> B-> C,我的头目前在CI上,现在想创建另一个提交D,它将具有与A相同的代码,以便我可以将该提交推送到远程分支而无需更改历史。

git revert git-revert

5
推荐指数
1
解决办法
1854
查看次数