Google app engine 使用JDO将数据存储结果GAE到FlexTable

Google app engine 使用JDO将数据存储结果GAE到FlexTable,google-app-engine,gwt,jdo,gwt-rpc,Google App Engine,Gwt,Jdo,Gwt Rpc,这似乎是一项简单的任务,但在搜索文档的某个地方,我错过了连接 我有一个存储在GAE中的菜单,可以返回查询结果: public String[] getMeals() throws NotLoggedInException { checkLoggedIn(); PersistenceManager pm = getPersistenceManager(); List<String> meals = new ArrayList<String>();

这似乎是一项简单的任务,但在搜索文档的某个地方,我错过了连接

我有一个存储在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]);
}
public String[]getFounds()抛出NotLoggeDineException{
checkLoggedIn();
PersistenceManager pm=getPersistenceManager();
列表列表=新的ArrayList();
试一试{
Query q=pm.newQuery(fine.class,“user==u”);
q、 declareParameters(“com.google.appengine.api.users.User u”);
q、 setOrdering(“createDate”);
List myfeeds=(List)q.execute(getUser());
用于(我的餐:我的餐){
添加(mydine.getMealID());
}
}最后{
pm.close();
}
return(字符串[])finds.toArray(新字符串[0]);
}
有了这些结果,我想将其绑定到FlexTable。使用stockwatcher示例,我成功地将我的ID绑定到FlexTable,但我缺少如何将结果集中的其他字段绑定到它的概念。(我在GAE中的字段是mealID、mealType和mealDate)

从上面,我们可以看到我把mealID列入了一个列表。 我还知道我的其他字段必须存在于查询中,因为我没有对它们进行任何筛选。事实上,如果我将代码更改为:

添加(mydine.getMealID(),mydine.getMealType(),mydine.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);
    }
}
private void loadfends(){
//从服务器服务MealService加载膳食
mealService.getFines(新的AsyncCallback(){
失败时公共无效(可丢弃错误){
handleError(错误);
}
成功时公共无效(字符串[]){
食物(餐);;
}
});
}
私有食物(字符串[]食物){
用于(串餐:三餐){
显示菜单(餐、餐、餐);
}
}
flextable的填充方式如下:

mealID | mealType | mealDate
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3

我希望它像这样填充:

mealID | mealType | mealDate
1 |早餐| 2012年12月22日
2 |午餐| 2012年12月22日
3 |零食| 2012年12月23日


提前感谢您的输入

这个问题是重复的

按照链接中的细节,以及来自oDesk的少量雇佣帮助,让我走了。 主要的疏忽是需要{appname}.gwt.xml中的entrypoint类,并将模型类放在共享包中