@Override public QueryListResult queryList(QueryOptions options, Map<String, Object> filters, Consumer<CriteriaQuery> callback, boolean filterByParams) { //todo: review query remote entity. if (remoteRest) { RestResource restResource = restResourceFactory.createResource(dao.getOrmContext(), em); RestQueryListResult<Record> result = restResource.queryList(options); return new QueryListResult(result.getList(), result.getCount()); } CriteriaQuery<Record> query = createCriteriaQuery(); Map<String, ModelAndMapping> joinedModels = new HashMap<>(); return doQueryListResult(query, joinedModels, options, filters, callback, filterByParams); }
protected QueryListResult queryListRemoteSource(Object id, QueryOptions options) { RestResource restResource = restResourceFactory.createResource(dao.getOrmContext(), em); RestQueryListResult<Record> result = restResource.queryRelationList(rp, id, options); return new QueryListResult(result.getList(), result.getCount()); }
@Override public QueryListResult count(CountOptions options, Consumer<CriteriaQuery> callback) { if (remoteRest) { RestResource restResource = restResourceFactory.createResource(dao.getOrmContext(), em); return new QueryListResult(null, restResource.count(options), null); } ModelExecutionContext context = new DefaultModelExecutionContext(this.context); CriteriaQuery<Record> query = createCriteriaQuery(); QueryOptions queryOptions = new QueryOptions(); queryOptions.setFilters(options.getFilters()); applyFilters(context, query, null, queryOptions, null, null); if (callback != null) { callback.accept(query); } long count = query.count(); return new QueryListResult(null, count, null); }
public QueryListResult queryListByIds(Set<Object> ids, QueryOptions options) { String idFieldName = em.getKeyFieldNames()[0]; if (remoteRest) { String filter = idFieldName + " in (" + joinInIds(new ArrayList<>(ids)) + ")"; if (Strings.isEmpty(options.getFilters())) { options.setFilters(filter); } else { options.setFilters("(" + options.getFilters() + ") and (" + filter + ")"); } RestResource restResource = restResourceFactory.createResource(dao.getOrmContext(), em); RestQueryListResult<Record> result = restResource.queryList(options); return new QueryListResult(result.getList(), result.getCount()); } else { CriteriaQuery<Record> query = createCriteriaQuery().where(idFieldName + " in ?", ids); return doQueryListResult(query, new HashMap<>(), options, null, null); } } }
return new QueryListResult(list, count, entity);