Spring-boot - 使用crudrepository在dynamodb中保存ArrayList

时间:2018-03-13 13:48:10

标签: spring-boot amazon-dynamodb

我在本地环境中使用Dynamodbspring-boot。当我尝试使用repository.save()保存对象列表时,其中存储库类型扩展CrudRepository接口,我得到以下异常:

  

com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException:   必须使用接口对类java.util.ArrayList进行批注   com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable

使用CrudRepository是否无法保存对象列表,就像在MongoRepository中一样,我们可以保存对象列表。

1 个答案:

答案 0 :(得分:0)

可能不是,因为List可能包含重复的记录,而DynamoDB希望这些记录具有唯一的记录集。请使用Set而不是List,它应该可以工作。请在您的数据库模型对象上使用以下注释-

@DynamoDBTyped(DynamoDBAttributeType.L)
private Set<MyObject> myObjSet = new HashSet<>(); 

还在MyObject.java的类级别上使用@DynamoDBDocument批注。 然后它应该起作用。