Googleデータストアからユーザーごとにデータを取得するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/764337

質問

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構文はわかりにくいです...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top