Wie holen Daten durch den Benutzer von Google-Datenspeichern?
-
11-09-2019 - |
Frage
ich mit Google App Engine spielte und ein wenig Mühe, auf JDOQL fragt .
Das Beispiel zeigt, wie Daten aus dem Datenspeicher holen:
PersistenceManager pm = PMF.get().getPersistenceManager();
String query = "select from " + Greeting.class.getName();
List<Greeting> greetings = (List<Greeting>) pm.newQuery(query).execute();
Aber was, wenn ich will Sachen holen nur für einen bestimmten Benutzer?
Am unteren Rand der Seite in den obigen Link zeigt sie könnten wir so etwas wie:
select from guestbook.Greeting where author == 'alfred@example.com'
Aber wenn ich versuche, das folgende es nicht alles holen:
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();
wo user
geholt wird, wie im gleichen Beispiel wie folgt dargestellt:
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
Ich bin sicher, dass dies eine gemeinsame Aufgabe ist, aber ich kann einfach nicht daran arbeiten - jede Hilfe dankbar
Lösung
Nach einer Diskussion über dieses Thema < I / a> auf Google Groups bekam es wie folgt arbeiten:
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 Syntax ist rätselhaft ...
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow