我有一个需要读/写的 DynamoDB 表。我正在尝试使用 Kotlin 创建一个用于从 DynamoDB 读取和写入的模型。但我com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: MyModelDB[myMap]; could not unconvert attribute
在跑步时不断遇到dynamoDBMapper.scanPage(...)
。有时myMap
会MyListOfMaps
相反,但我想这是通过迭代 Map 的键。
我的代码如下:
@DynamoDBTable(tableName = "") // Non-issue, I am assigning the table name in the DynamoDBMapper
data class MyModelDB(
@DynamoDBHashKey(attributeName = "id")
var id: String,
@DynamoDBAttribute(attributeName = "myMap")
var myMap: MyMap,
@DynamoDBAttribute(attributeName = "MyListOfMapItems")
var myListOfMapItems: List<MyMapItem>,
) {
constructor() : this(id = "", myMap = MyMap(), myListOfMaps = mutableListOf())
@DynamoDBDocument
class MyMap {
@get:DynamoDBAttribute(attributeName = "myMapAttr")
var myMapAttr: MyMapAttr = MyMapAttr()
@DynamoDBDocument
class MyMapAttr {
@get:DynamoDBAttribute(attributeName = "stringValue")
var stringValue: String = ""
}
}
@DynamoDBDocument
class MyMapItem {
@get:DynamoDBAttribute(attributeName = "myMapItemAttr")
var myMapItemAttr: String = ""
}
}
我正在使用该com.amazonaws:aws-java-sdk-dynamodb:1.11.500
软件包,并且我dynamoDBMapper
的初始化是DynamoDBMapperConfig.Builder().build()
(以及其他一些配置)。
我的问题是我做错了什么,为什么?我还看到一些 Java 实现使用DynamoDBTypeConverter
. 它更好吗,我应该改用它吗?
任何例子将不胜感激!