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].
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en.