That would be great as i am just taking a guess at what is the
smallest select set at the moment and filtering the rest in memory.

thanks for the response.

regards,
rob

On Jan 8, 5:48 pm, "Max Ross (Google)" <[email protected]>
wrote:
> Thanks for the report, looks like a bug.  Multiple contains() clauses are
> fine but I didn't properly account for the case where one of the clauses is
> on the primary key of the object.  The fix should be straightforward but let
> me see if I can get you a workaround.
>
> Max
>
> On Thu, Jan 7, 2010 at 7:06 PM, siliconeagle <[email protected]> wrote:
> > Basically i have 3 fields in the same table to select by
> > using .contains() clauses - one is the primary key field
>
> > so :keyList (java.util.Set<Key>) , :feedTypes (java.util.Set<Integer>)
> > & :contentTypes(java.util.Set<Integer>) with values i need to select
> > with.
>
> > The Feed object (and the relevant fields) is
> > @PersistenceCapable(identityType = IdentityType.APPLICATION)
> > public class Feed {
>
> >       �...@primarykey
> >       �...@persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
> >        private Key id;
> >  ...
> >       �...@persistent
> >        private int typeFeed ;
> >       �...@persistent
> >        private int typeContent = CONTENT_TYPE_NOTCHECKED;
> > ....
> > }
>
> > so i try this
> > Query query1 = pm.newQuery(Feed.class);
> > query1.setFilter(":keyList.contains(id) && :feedTypes.contains
> > (typeFeed) &&  :contentTypes.contains(typeContent)");
> > query1.setRange(0,500);
> > Map<String, Collection> paramsf = new HashMap<String, Collection>();
> > paramsf.put("keyList", feedIds);
> > paramsf.put("feedTypes", feedTypes);
> > paramsf.put("contentTypes", contentTypes);
> > feeds = (List<Feed>) query1.executeWithMap(paramsf);
>
> > and i get
> > javax.jdo.JDOFatalUserException: Batch lookup by primary key is only
> > supported if no other filters and no sort orders are defined.
>
> > Is there any way around it - from other posts it looks like subqueries
> > an the IN syntax arent supported.
>
> > --
> > 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
> > [email protected].
> > To unsubscribe from this group, send email to
> > [email protected]<google-appengine-java%[email protected]>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/google-appengine-java?hl=en.
-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.


Reply via email to