0
我得到一个空对象引用错误,当我尝试从我的dynamoDB表这样的查询数据:DynamoDB PaginatedQueryList空对象引用错误
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
你创建自己DataMapperClass?如果是的话,你可以分享它的代码,请确保它是正确注释的,如http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodbv2/datamodeling/DynamoDBMapper.html所述。 – dinesh
你是否得到NullPointerException?在上面的代码中我看不到QueryResult。在执行查询或mapper.query后,您是否收到异常? – notionquest
@notionquest:在AsyncTask的doInBackground()中执行代码后,我得到java.lang.NullPointerException“null object reference”错误。 –