在我的DynamoDB數據庫中的表上運行掃描表達式時,Im發生特定錯誤。截至目前,我的項目表中有一個項目。此項目包含項目說明和團隊隊友的列表。當檢索項目描述的信息時,我的代碼打印出項目的正確名稱。然而,當試圖從這個相同的項目檢索隊友列表時,它說該列表是一個空對象引用。我似乎無法理解爲什麼返回的列表爲空。假設所有權限已在IAM控制檯和數據庫中正確設置。如何從DynamoDB檢索列表?
下面是我的線程掃描表的代碼。
public void run() {
DynamoDBScanExpression scanExpression = new DynamoDBScanExpression();
//returns a list of items from the table. each item is of Project type
List<Project> scanResult=mapper.scan(Project.class,scanExpression);
//for each project within scanResult do the following
for (Project project: scanResult){
//retrieve the name of the team (this portion of the code logs the project name properly)
String team=project.getProjectname();
Log.v("team",team.toString());
//The list being returned from this one line below is null??
List<String> teammates=project.getTeammates();
Log.v("Teammate", teammates.get(0));
}
}
};
Thread mythread = new Thread(runnable);
mythread.start();
以下是在掃描表格時充當模板的Projects類的代碼。這很可能是問題的方面,因爲項目描述字符串被正確返回,但是teamMates List isnt。也許我不應該使用List,或者List沒有被正確定義,或者Java註釋在這張桌子上的使用不正確!但是我無法找到問題
package com.example.varun.finalproject;
import com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.*;
import java.util.List;
/**
* Created by Varun on 4/10/17.
*/
@DynamoDBTable(tableName = "SBUProjects")
public class Project {
private String ProjectName;
private List<String> TeamMates;
@DynamoDBHashKey(attributeName = "ProjectName")
public String getProjectname() {
return ProjectName;
}
public void setProjectname(String projectName) {
this.ProjectName = projectName;
}
public List<String> getTeammates() {
return TeamMates;
}
public void setTeammates(List teammates) {
this.TeamMates= TeamMates;
}
}
最後,這裏是我的表的照片,包含了項目介紹和我的隊友列表字符串的String項目。我假設,因爲表確定teamMates是一個列表,我也應該在返回teamMates的時候創建一個List。
http://i67.tinypic.com/2qnm58h.jpg
幫助將不勝感激。