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.
