2016-11-21 80 views
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 
+0

你创建自己DataMapperClass?如果是的话,你可以分享它的代码,请确保它是正确注释的,如http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodbv2/datamodeling/DynamoDBMapper.html所述。 – dinesh

+0

你是否得到NullPointerException?在上面的代码中我看不到QueryResult。在执行查询或mapper.query后,您是否收到异常? – notionquest

+0

@notionquest:在AsyncTask的doInBackground()中执行代码后,我得到java.lang.NullPointerException“null object reference”错误。 –

回答

0

问题sol VED!

我意识到我没有在我的onCreate()做到这一点:

ddbClient = new AmazonDynamoDBClient(identityManager.getCredentialsProvider()); 
相关问题