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); } } }
public QueryListResult queryListByRelation(Object relatedId, QueryOptions options) { CriteriaQuery<Record> query = createCriteriaQuery().joinById(rm.getTargetEntityName(), rm.getName(), "j", relatedId); Map<String, ModelAndMapping> joinedModels = New.hashMap("j", new ModelAndMapping(am, em)); return doQueryListResult(query, joinedModels, options, null, null); }