@Override public Query apply(Query input) { input.where(Clause.clause("parentId", Operator.NULL, "")); return input; } });
protected void enrichWhereByMap(OPersistenceSession session, AbstractQuery q, OClass schemaClass, Map<String, ?> query, List<Object> args, List<String> ignore) { checkMapping(session); for(Map.Entry<String, ?> entry : query.entrySet()) { if((mappingFromEntityToDoc.containsKey(entry.getKey()) || mappingFromEntityToDoc.containsKey(entry.getKey())) && (ignore==null || !ignore.contains(entry.getKey()))) { String docMapping = mappingFromEntityToDoc.get(entry.getKey()); if(docMapping==null) docMapping = mappingFromQueryToDoc.get(entry.getKey()); Object value = entry.getValue(); if(value!=null) { where(q, clause(docMapping, Operator.EQ, Parameter.PARAMETER)); args.add(convertValueFromEntity(entry.getKey(), value)); } } } }
protected void enrichWhereByBean(OPersistenceSession session, AbstractQuery q, OClass schemaClass, Object query, List<Object> args, List<String> ignore) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException { checkMapping(session); for(PropertyDescriptor pd : BeanUtils.getPropertyDescriptors(query.getClass())) { if(pd.getReadMethod()!=null && ( mappingFromEntityToDoc.containsKey(pd.getName()) || mappingFromQueryToDoc.containsKey(pd.getName())) && (ignore==null || !ignore.contains(pd.getName()))) { String docMapping = mappingFromEntityToDoc.get(pd.getName()); if(docMapping==null) docMapping = mappingFromQueryToDoc.get(pd.getName()); Object value = pd.getReadMethod().invoke(query); if(value!=null) { where(q, clause(docMapping, Operator.EQ, Parameter.PARAMETER)); args.add(convertValueFromEntity(pd.getName(), value)); } } } }
@Statement public Long selectMeterLogSum(OPersistenceSession session, final ListQueryParameterObject params) { Map<String, Object> map = (Map<String, Object>) params.getParameter(); Query q = new Query().select(ProjectionFunction.count(Projection.projection("value")).as("value")) .from(getSchemaClass()); List<Object> args = new ArrayList<>(); if(map.get("name")!=null) { q.where(Clause.clause("name", Operator.EQ, Parameter.PARAMETER)); args.add(map.get("name")); } if(map.get("reporter")!=null) { q.where(Clause.clause("reporter", Operator.EQ, Parameter.PARAMETER)); args.add(map.get("reporter")); } if(map.get("startDate")!=null) { q.where(Clause.clause("timestamp", Operator.GT, Parameter.PARAMETER)); args.add(map.get("startDate")); } if(map.get("endDate")!=null) { q.where(Clause.clause("timestamp", Operator.LT, Parameter.PARAMETER)); args.add(map.get("endDate")); } ODatabaseDocument db = session.getDatabase(); List<ODocument> ret = db.query(new OSQLSynchQuery<>(q.toString()), args.toArray()); return (Long)(ret!=null && !ret.isEmpty()? ret.get(0).field("value", OType.LONG):null); } }
@Statement public List<JobEntity> selectJobsByConfiguration(OPersistenceSession session, ListQueryParameterObject query) { Map<String, Object> params = (Map<String, Object>) query.getParameter(); String config = (String) params.get("handlerConfiguration"); String followUpConfig = (String) params.get("handlerConfigurationWithFollowUpJobCreatedProperty"); String type = (String) params.get("handlerType"); List<String> args = new ArrayList<>(); Query q = new Query().from(getSchemaClass()); q.where(Clause.clause("jobHandlerType", Operator.EQ, Parameter.PARAMETER)); args.add(type); Clause eqConfig = Clause.clause("JobHandlerConfigurationRaw", Operator.EQ, Parameter.PARAMETER); if(Strings.isEmpty(followUpConfig)) { q.where(eqConfig); args.add(config); } else { q.where(Clause.or(eqConfig, eqConfig)); args.add(config); args.add(followUpConfig); } return queryList(session, q.toString(), args.toArray()); }
@Override public Query apply(Query input) { SuspensionState state = query.getSuspensionState(); if(state!=null) input.where(Clause.clause("suspensionState", Operator.EQ, state.getStateCode())); String businessKey = query.getBusinessKey(); if(businessKey!=null) { List<ODocument> proc = session.getDatabase() .query(new OSQLSynchQuery<>("select processInstanceId from "+getSchemaClass()+" where businessKey=?", 1) , businessKey); if(proc!=null && !proc.isEmpty()) { String processInstanceId = proc.get(0).field("processInstanceId"); input.where(Clause.clause("processInstanceId", Operator.EQ, processInstanceId)); } } return input; } },"suspensionState", "businessKey");