2009-04-18 74 views
1

我正在玩谷歌应用程序引擎,并且在JDOQL queries上有点麻烦。如何从谷歌数据存储用户获取数据?

的例子展示了如何从数据库中获取的东西:

PersistenceManager pm = PMF.get().getPersistenceManager(); 
String query = "select from " + Greeting.class.getName(); 
List<Greeting> greetings = (List<Greeting>) pm.newQuery(query).execute(); 

但是,如果我想只给定用户获取的东西是什么?

在页面中的链接底部上方它表明我们可以像这样:

select from guestbook.Greeting where author == '[email protected]' 

但是,如果我尝试以下方法不获取任何东西:

PersistenceManager pm = PMF.get().getPersistenceManager(); 
String query = "select from " + Greeting.class.getName() + " where author == '" + user.GetEmail() + "'"; 
List<Greeting> greetings = (List<Greeting>) pm.newQuery(query).execute(); 

其中user如同样的例子所示:

UserService userService = UserServiceFactory.getUserService(); 
User user = userService.getCurrentUser(); 

我相信这个是一个常见的任务,但我不能得到它的工作 - 任何帮助表示赞赏!

回答

2

在谷歌论坛上this thread的讨论后,我得到它的工作是这样的:

String select_query = "select from " + Greeting.class.getName(); 
Query query = pm.newQuery(select_query); 
query.setFilter("author == paramAuthor"); 
query.declareParameters("java.lang.String paramAuthor"); 
greetings = (List<Greeting>) query.execute(user); 

JDQL语法是令人费解......

+0

+1。没有反应......你对星期日有什么期望?......在这个阳光明媚的星期天! – 2009-04-19 19:41:40