Can anyone tell me why the following code is causing an error on the last line with the command “execute” with the error message:
The method execute(Object, Object, Object) in the type Query is not applicable for the arguments (Long, Long, Date, Date)
Query q = pm.newQuery(Appointment.class,"AdminID == AID"+
" && EmployeeID == CEID"+
" && Time > STime"+
" && Time < ETime");
q.declareImports("import java.util.Date");
q.declareParameters("Long AID, Long CEID, Date STime, Date ETime");
q.setOrdering("Time");
Appointments = (List<Appointment>) q.execute(AdminID, CurrentEmployeeID, Time1, Time2);
As far as I can tell (implied by the error message, the execute function can only take a maximum of 3 arguements, if this is the case, can anyone advise on how to achieve what I want to do? I have tried the following code, but I get a parsing error every time it runs!
Query q = pm.newQuery(Appointment.class,"AdminID == "+AdminID+
" && EmployeeID == "+CurrentEmployeeID+
" && Time > "+Time1+
" && Time < "+Time2);
q.declareImports("import java.util.Date");
q.setOrdering("Time");
Appointments = (List<Appointment>) q.execute();
The Parsing error I get is:
org.datanucleus.store.query.QueryCompilerSyntaxException: Portion of expression could not be parsed: Aug 13 11:44:55 BST 2012 && Time < Mon Aug 13 11:45:05 BST 2012
Try executeWithArray or executeWithMap.
Notes:
startTimeandendTimeare more descriptive thanTime1,Time2..." && Time > " + Time1.toString() + ...