Я получаю ошибку ссылки на нулевой объект, когда пытаюсь запросить данные из моей таблицы DynamoDB следующим образом:
mapper = new DynamoDBMapper(ddbClient);
DataMapperClass dataMapperClass = new DataMapperClass();
dataMapperClass.setHash("theHashValueIset");
String queryString = String.valueOf("theRangeValueIset");
Condition rangeKeyCondition = new Condition()
.withComparisonOperator(ComparisonOperator.BEGINS_WITH.toString())
.withAttributeValueList(new AttributeValue().withS(queryString.toString()));
DynamoDBQueryExpression <DataMapperClass> queryExpression = new DynamoDBQueryExpression<DataMapperClass>()
.withHashKeyValues(dataMapperClass)
.withRangeKeyCondition("rangeAttributeOnTable", rangeKeyCondition)
.withConsistentRead(false);
PaginatedQueryList<DataMapperClass> result = mapper.query(DataMapperClass.class, queryExpression);
Мой DataMapperClass.class:
@DynamoDBTable(tableName = "myTableName")
public class DataMapperClass {
private String hash;//based on a set of categories I chose
private String objectID; //auto generated
//Hash
@DynamoDBHashKey(attributeName = "hashNameOnMyTable")
public String getHash() { return hash; }
public void setHash(String hash) { this.hash = hash;}
//ObjectID
@DynamoDBRangeKey(attributeName = "rangeAttributeOnTable")
@DynamoDBAutoGeneratedKey
public String getObjectID() {return objectID;}
public void setObjectID(String objectID) { this.objectID = objectID; }
/* other @DynamoDBAttribute*/
}
Как я могу решить эту ошибку, которую я получаю в строке кода «PaginatedQueryList»:
Attempt to invoke interface method 'com.amazonaws.services.dynamodbv2.model.QueryResult com.amazonaws.services.dynamodbv2.AmazonDynamoDB.query(com.amazonaws.services.dynamodbv2.model.QueryRequest)' on a null object reference