public static List<Object> listOfEntities(SharedSessionContractImplementor session, Class<?> returnedClass, ClosableIterator<Tuple> tuples) { TupleBasedEntityLoader loader = getLoader( session, returnedClass ); OgmLoadingContext ogmLoadingContext = new OgmLoadingContext(); ogmLoadingContext.setTuples( getTuplesAsList( tuples ) ); return loader.loadEntitiesFromTuples( session, LockOptions.NONE, ogmLoadingContext ); }
@Override protected List<?> list(SharedSessionContractImplementor session, org.hibernate.engine.spi.QueryParameters queryParameters, Set<Serializable> querySpaces, Type[] resultTypes) throws HibernateException { ClosableIterator<Tuple> tuples = loaderContext.executeQuery( session, QueryParameters.fromOrmQueryParameters( queryParameters, typeTranslator, session.getFactory() ) ); try { if ( isEntityQuery() ) { return CustomLoaderHelper.listOfEntities( session, resultTypes, tuples ); } else { return listOfArrays( session, tuples ); } } finally { tuples.close(); } }
private Output entitiesOutput(NoSQLProcedureCallImpl procedureCall, ProcedureQueryParameters queryParameters) { if ( procedureCall.getSynchronizedQuerySpaces().size() > 1 ) { throw log.multipleEntitiesOutputNotSupported( procedureCall.getProcedureName(), procedureCall.getSynchronizedQuerySpaces() ); } @SuppressWarnings("unchecked") Iterator<String> iterator = procedureCall.getSynchronizedQuerySpaces().iterator(); String querySpace = iterator.next(); MetamodelImplementor metamodelImplementor = procedureCall.getSession().getFactory().getMetamodel(); OgmEntityPersister entityPersister = entityPersister( querySpace, metamodelImplementor ); EntityMetadataInformation entityMetadata = entityMetadataInfo( querySpace, metamodelImplementor, entityPersister ); TupleContext tupleContext = tupleContext( procedureCall.getSession(), entityMetadata ); ClosableIterator<Tuple> result = gridDialect.callStoredProcedure( procedureCall.getProcedureName(), queryParameters, tupleContext ); List<?> entityList = listOfEntities( procedureCall.getSession(), entityPersister.getMappedClass(), result ); return new NoSQLProcedureResultSetOutputImpl( entityList ); }
public static List<Object> listOfEntities(SharedSessionContractImplementor session, Type[] resultTypes, ClosableIterator<Tuple> tuples) { Class<?> returnedClass = resultTypes[0].getReturnedClass(); TupleBasedEntityLoader loader = getLoader( session, returnedClass ); OgmLoadingContext ogmLoadingContext = new OgmLoadingContext(); ogmLoadingContext.setTuples( getTuplesAsList( tuples ) ); return loader.loadEntitiesFromTuples( session, LockOptions.NONE, ogmLoadingContext ); }