ano*_*932 6 java amazon-web-services amazon-dynamodb
编写DynamoDB Java应用程序时,如果未正确配置表及其数据模型,则在写入或从表中检索时,您可以收到"无映射HASH密钥"错误.完整的例外情况类似于:
com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: <YourClassNameHere>; no mapping for HASH key
这里有两个有用的东西:
1)对于哈希键值的主要setter,请确保@DynamoDBHashKey正确设置了表示法.@DynamoDBAttribute是不是正确的用于表的主哈希键,也不是@DynamoDBIndexHashKey.
2)确保在表定义中定义了散列键:
CreateTableRequest createTableRequest = new CreateTableRequest()
.withTableName("testtable")
.withKeySchema(
new KeySchemaElement("id", KeyType.HASH)
)
.withProvisionedThroughput(new ProvisionedThroughput(1L, 1L))
.withAttributeDefinitions(
new AttributeDefinition("id", "S")
);
CreateTableResult result = amazonDynamoDB.createTable(createTableRequest);
Run Code Online (Sandbox Code Playgroud)
上面的表定义创建了一个表'testtable',其中主索引或散列键变量标题为id,并且类型S为string.
此外,如果您正在使用继承,请确保您没有两个具有相同名称的功能可以相互覆盖.Dynamo将使用顶级getter,这可能会导致问题.
| 归档时间: |
|
| 查看次数: |
7060 次 |
| 最近记录: |