我在本地环境中使用Dynamodb
和spring-boot
。当我尝试使用repository.save()
保存对象列表时,其中存储库类型扩展CrudRepository
接口,我得到以下异常:
com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: 必须使用接口对类java.util.ArrayList进行批注 com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable
使用CrudRepository是否无法保存对象列表,就像在MongoRepository中一样,我们可以保存对象列表。
答案 0 :(得分:0)
可能不是,因为List可能包含重复的记录,而DynamoDB希望这些记录具有唯一的记录集。请使用Set而不是List,它应该可以工作。请在您的数据库模型对象上使用以下注释-
@DynamoDBTyped(DynamoDBAttributeType.L)
private Set<MyObject> myObjSet = new HashSet<>();
还在MyObject.java的类级别上使用@DynamoDBDocument
批注。
然后它应该起作用。