Hi,
I am trying to add a AND-Expression to a GAE batch query to filter Entities:
Currently I am doing this, and it works perfect:
1.
DBQuery.selectFromKeysOnly -> Query to select Entitie by key
2.
String queryBatchString = "select from " + C1.class.getName()
+ " where "
+ Model.KEY_FIELD + " == :keys";
3.
Query query = pm.newQuery(queryBatchString);
modelList = (List<Model>)query.execute(encodedKeyList);
The disadvantage with that approach is, that the query in step 2 always returns all Entities. But I only want Entites which have a date > current Date. Currently I am filtering the Entities in the server code (Step 4).
To avoid this, I changed the query in 2. and added an "AND" expression to filter the entities directly:
String queryBatchString = "select from " + C1.class.getName()
+ " where "
+ Model.KEY_FIELD + " == :keys"
+ " AND " + C1.C1_DATE_FIELD + " > "+ currDate.getTimeInMillis();
But with this change I get an QueryCompilerSyntaxException:
"
Portion of expression could not be parsed: AND encodedKey == :keys
org.datanucleus.store.query.QueryCompilerSyntaxException: Portion of expression could not be parsed: AND encodedKey == :keys
"
What is wrong or what can be done better. Are AND-Expressions not allowed in Bbatch Queries?
Thanks
Marcus