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.
