Googleデータストアからユーザーごとにデータを取得するにはどうすればよいですか?
-
11-09-2019 - |
質問
Google App Engineで遊んでいますが、少し問題があります JDOQLクエリ.
この例は、データストアからデータをフェッチする方法を示しています。
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グループでは次のように機能しました。
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構文はわかりにくいです...
所属していません StackOverflow