這似乎是一個簡單的任務,但在搜索文檔的某處 - 我錯過了連接。使用JDO GAE數據存儲結果到FlexTable
我保存在GAE的菜單,並且可以返回查詢的結果:
public String[] getMeals() throws NotLoggedInException {
checkLoggedIn();
PersistenceManager pm = getPersistenceManager();
List<String> meals = new ArrayList<String>();
try {
Query q = pm.newQuery(Meal.class, "user == u");
q.declareParameters("com.google.appengine.api.users.User u");
q.setOrdering("createDate");
List<Meal> myMeals = (List<Meal>) q.execute(getUser());
for (Meal myMeal : myMeals) {
meals.add(myMeal.getMealID());
}
} finally {
pm.close();
}
return (String[]) meals.toArray(new String[0]);
}
有了這些成績,我想將其綁定到一個FlexTable。使用stockwatcher示例,我設法將我的ID綁定到FlexTable,但我錯過了如何將結果集中的其他字段綁定到它的概念。 (我在GAE中的字段是mealID,mealType和mealDate)
從上面我們可以看到,我將mealID折騰到List中。 我也知道我的其他字段必須存在於查詢中,因爲我沒有做任何事情來過濾它們。事實上,如果我將我的代碼更改爲:
meals.Add(myMeal.getMealID(),myMeal.getMealType(),myMeal.getMealDate());
它將返回所有數據,但flex表將每個項目視爲新行而不是一行上的三個字段。
所以我的問題是:我應該如何捕獲我的記錄並將它們發送到我的FlexTable,以便我可以將FlexTable綁定到結果集?
僅供參考,客戶端代碼:
private void loadMeals() {
// load meals from server service MealService
mealService.getMeals(new AsyncCallback<String[]>() {
public void onFailure(Throwable error) {
handleError(error);
}
public void onSuccess(String[] meals) {
displayMeals(meals);
}
});
}
private void displayMeals(String[] meals) {
for (String meal : meals) {
displayMenu(meal, meal, meal);
}
}
的flextable被填充像這樣:
mealID | mealType | mealDate
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
我想它填充像這樣:
mealID | mealType | mealDate
1 |早餐| 12/22/2012
2 |午餐| 12/22/2012
3 |小吃| 12/23/2012
在此先感謝您的意見!