だから、this postを見て、this other postを見ました。具体的な問題は次のとおりです。DynamoDBMappingException:ハッシュキーのマッピングがありません。明確にマップしたにもかかわらず、
私は、単一のパーティションキー "serverName"を持つ "server"という単純なDynamoDBテーブルを持っています。ここでは表が説明だ:
"table":{
"attributeDefinitions":[{
"attributeName":"serverName","attributeType":"S"
}],
"tableName":"server",
"keySchema":[{
"attributeName":"serverName","keyType":"HASH"
}],
"tableStatus":"ACTIVE",
"creationDateTime":"Jul 29, 2017 12:46:36 PM",
"provisionedThroughput":{
"numberOfDecreasesToday":0,
"readCapacityUnits":5,
"writeCapacityUnits":5
}
}
私はこのように、Javaのテーブルの定義を持っている:
@DynamoDBTable(tableName="server")
public static class Server {
private String serverName;
private Room[] rooms;
Server() {}
Server(String serverName) {
this.serverName = serverName;
this.setRooms();
}
@DynamoDBHashKey(attributeName="serverName")
String getServerName() {
return serverName;
}
void setServerName(String serverName) {
this.serverName = serverName;
}
.
.
.
}
あなたは、私が「serverNameの」のHASH属性を持っていることを説明し、私のテーブル内の定義で見ることができますJavaでは@DynamoDBHashKey(attributeName="serverName")
があります。
は、誰かが...私はまだなっだ、なぜ私が把握助けることができ
com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: Server; no mapping for HASH key
at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperTableModel.hashKey(DynamoDBMapperTableModel.java:119) ~[aws-java-sdk-dynamodb-1.11.105.jar!/:na]
at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperTableModel$Builder.build(DynamoDBMapperTableModel.java:449) ~[aws-java-sdk-dynamodb-1.11.105.jar!/:na]
at com.amazonaws.services.dynamodbv2.datamodeling.StandardModelFactories$StandardTableFactory.getTable(StandardModelFactories.java:107) ~[aws-java-sdk-dynamodb-1.11.105.jar!/:na]
at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.getTableModel(DynamoDBMapper.java:393) ~[aws-java-sdk-dynamodb-1.11.105.jar!/:na]
at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:431) ~[aws-java-sdk-dynamodb-1.11.105.jar!/:na]
at com.amazonaws.services.dynamodbv2.datamodeling.AbstractDynamoDBMapper.load(AbstractDynamoDBMapper.java:80) ~[aws-java-sdk-dynamodb-1.11.105.jar!/:na]
at com.animationlibationstudios.channel.inventory.persist.dynamodb.ServerDynamoRepository.readServer(ServerDynamoRepository.java:110) ~[classes!/:na]
at com.animationlibationstudios.channel.inventory.persist.dynamodb.ServerDynamoRepository.readServer(ServerDynamoRepository.java:26) ~[classes!/:na]
(私はJDK 8とcom.amazonaws使用していますPS:AWS-javaの-SDK-DynamoDBの:1.11 0.105)
あなたが「getServerName」のために異なるアクセス修飾子を設定する必要があります。ここでは
はそれを行う方法です。私の更新された答えを見てください。 –