【问题标题】:How to fetch data by user from google datastore?如何从谷歌数据存储中获取用户数据?
【发布时间】:2009-04-18 22:16:29
【问题描述】:

我正在使用谷歌应用引擎,在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 == 'alfred@example.com'

但如果我尝试以下操作,它不会获取任何内容:

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();

我确信这是一项常见任务,但我无法让它工作 - 感谢任何帮助!

【问题讨论】:

    标签: google-app-engine jdoql google-cloud-datastore


    【解决方案1】:

    在 Google 网上论坛上对 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 语法令人费解……

    【讨论】:

    • +1。没有回应......你对星期天有什么期待?......一个阳光明媚的星期天!
    • 考虑到主题和天气,我真的无法期待任何回应 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 2016-08-12
    • 2018-07-25
    • 2012-04-11
    • 1970-01-01
    相关资源
    最近更新 更多