Yes, it is a key. I just wanted to make it obvious which Keys are involved. I read the Embedded class as well, its not what I want here I think.
How would you model this scenario then? Both models I discussed in my original post have issues. On Thu, Aug 27, 2009 at 11:22 AM, Jason (Google) <apija...@google.com>wrote: > JDO supports syntax like article.status but App Engine's datastore doesn't > support joins so you'll have to make article an embedded object in order to > use the query as you have it below: > > http://code.google.com/appengine/docs/java/datastore/dataclasses.html#Embedded_Classes > > Also, how have you defined reviewerParam? Is it a Key object or are you > actually passing in the Reviewer object? The latter won't work, but I'll > follow up about the former (querying on a Key). > > - Jason > > > On Sun, Aug 23, 2009 at 11:18 PM, Sam Walker <am.sam.wal...@gmail.com>wrote: > >> Also, I get this error: *Can only filter by properties of a sub-object if >> the sub-object is embedded.* when I tried to access article while setting >> a fitler: query.setFilter("reviewer == reviewerParam && article.status = >> articleStatusParam"); >> >> What am I missing? >> >> >> On Sat, Aug 22, 2009 at 6:02 PM, Sam Walker <am.sam.wal...@gmail.com>wrote: >> >>> In the second model, how will I find all Articles being reviewed by A and >>> B? >>> >>> The only way I can think of is adding another derived field in Article: >>> >>> Article { >>> HashSet<Review> reviews; >>> HashSet<Reviewer> reviewers; // keys of Reviewers to help the query >>> "find all articles reviewed by A and B" >>> HashSet<String> tags; >>> int status; // derived from all Reviews' statuses. >>> } >>> >>> Review { >>> Article article; >>> Reviewer reviewer; >>> int status; >>> } >>> >>> Now I should be able to do "reviewers.contains(A.key) and >>> reviewers.contains(B.key)". Is that the best way? >>> >>> >>> On Sat, Aug 22, 2009 at 2:02 PM, Sam Walker <am.sam.wal...@gmail.com>wrote: >>> >>>> Oh sweet, I didn't know that. >>>> >>>> That's awesome! Thanks for the quick reply. >>>> >>>> >>>> On Sat, Aug 22, 2009 at 1:51 PM, datanucleus >>>> <andy_jeffer...@yahoo.com>wrote: >>>> >>>>> >>>>> > I dont think I can do sth like (I can't access article.tags, >>>>> article.status >>>>> > as far as I know, correct?): >>>>> >>>>> Of course you can. JDO spec defines JDOQL, using Java syntax. >>>>> >>>>> > query.setFilter("reviewer == reviewerParam && status == statusParam >>>>> && >>>>> > article.tags == tagParam && article.status = articleStatusParam"); >>>>> >>>>> What is "tagParam" ? an element of the hashSet? >>>>> You can't do "Collection == element" in Java so you can't in JDOQL. >>>>> You could do "article.tags.contains(tagParam)" >>>>> >>>>> >>>> >>> >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-java@googlegroups.com To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~----------~----~----~----~------~----~------~--~---