Google app engine 使用JDO将数据存储结果GAE到FlexTable
这似乎是一项简单的任务,但在搜索文档的某个地方,我错过了连接 我有一个存储在GAE中的菜单,可以返回查询结果: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>();
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 | mealDate1 | 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类,并将模型类放在共享包中