@Override public BusinessDataQueryResult getJsonQueryEntities(final String entityClassName, final String queryName, final Map<String, Serializable> parameters, final Integer startIndex, final Integer maxResults, final String businessDataURIPattern) throws SBusinessDataRepositoryException { final Class<? extends Entity> businessDataClass = loadClass(entityClassName); BusinessObject businessObject = getBusinessObjectFromClassName(entityClassName); final Query queryDefinition = getQueryDefinition(businessObject, entityClassName, queryName); final Map<String, Serializable> queryParameters = getQueryParameters(queryDefinition, parameters); final List<? extends Serializable> list = businessDataRepository.findListByNamedQuery(getQualifiedQueryName(businessDataClass, queryName), getQueryReturnType(queryDefinition, entityClassName), queryParameters, startIndex, maxResults); BusinessDataQueryMetadataImpl businessDataQueryMetadata = null; final Query countQueryDefinition = getCountQueryDefinition(businessDataClass, businessObject, queryDefinition); if (countQueryDefinition != null) { try { businessDataQueryMetadata = new BusinessDataQueryMetadataImpl(startIndex, maxResults, (Long) businessDataRepository.findByNamedQuery(getQualifiedQueryName(businessDataClass, countQueryDefinition.getName()), getQueryReturnType(countQueryDefinition, entityClassName), queryParameters)); } catch (NonUniqueResultException e) { throw new SBusinessDataRepositoryException("unable to count results for query " + queryName); } } Serializable jsonResults = jsonBusinessDataSerializer.serializeEntities((List<Entity>) list, businessDataURIPattern); return new BusinessDataQueryResultImpl(jsonResults, businessDataQueryMetadata); }
@Override public BusinessDataQueryResult getJsonQueryEntities(final String entityClassName, final String queryName, final Map<String, Serializable> parameters, final Integer startIndex, final Integer maxResults, final String businessDataURIPattern) throws SBusinessDataRepositoryException { final Class<? extends Entity> businessDataClass = loadClass(entityClassName); BusinessObject businessObject = getBusinessObjectFromClassName(entityClassName); final Query queryDefinition = getQueryDefinition(businessObject, entityClassName, queryName); final Map<String, Serializable> queryParameters = getQueryParameters(queryDefinition, parameters); final List<? extends Serializable> list = businessDataRepository.findListByNamedQuery(getQualifiedQueryName(businessDataClass, queryName), getQueryReturnType(queryDefinition, entityClassName), queryParameters, startIndex, maxResults); BusinessDataQueryMetadataImpl businessDataQueryMetadata = null; final Query countQueryDefinition = getCountQueryDefinition(businessDataClass, businessObject, queryDefinition); if (countQueryDefinition != null) { try { businessDataQueryMetadata = new BusinessDataQueryMetadataImpl(startIndex, maxResults, (Long) businessDataRepository.findByNamedQuery(getQualifiedQueryName(businessDataClass, countQueryDefinition.getName()), getQueryReturnType(countQueryDefinition, entityClassName), queryParameters)); } catch (NonUniqueResultException e) { throw new SBusinessDataRepositoryException("unable to count results for query " + queryName); } } Serializable jsonResults = jsonBusinessDataSerializer.serializeEntities((List<Entity>) list, businessDataURIPattern); return new BusinessDataQueryResultImpl(jsonResults, businessDataQueryMetadata); }