@Override public Stream<T> stream() { return StreamUtils.createStreamFromIterator(doStream()); }
@Override protected Object doExecute(final AbstractJpaQuery query, Object[] values) { if (!SurroundingTransactionDetectorMethodInterceptor.INSTANCE.isSurroundingTransactionActive()) { throw new InvalidDataAccessApiUsageException(NO_SURROUNDING_TRANSACTION); } Query jpaQuery = query.createQuery(values); // JPA 2.2 on the classpath if (streamMethod != null) { return ReflectionUtils.invokeMethod(streamMethod, jpaQuery); } // Fall back to legacy stream execution PersistenceProvider persistenceProvider = PersistenceProvider.fromEntityManager(query.getEntityManager()); CloseableIterator<Object> iter = persistenceProvider.executeQueryWithResultStream(jpaQuery); return StreamUtils.createStreamFromIterator(iter); } }
@Override public Stream<T> stream() { return StreamUtils.createStreamFromIterator(doStream()); }
@SuppressWarnings("unchecked") <E> Stream<E> findStream() { if (queryType == QUERY) { return StreamUtils.createStreamFromIterator(((Query<E>) queryInstance).findIterate()); } throw new IllegalArgumentException("query not supported!"); }
@SuppressWarnings("unchecked") <E> Stream<E> findStream() { if (queryType == QUERY) { return StreamUtils.createStreamFromIterator(((Query<E>) queryInstance).findIterate()); } throw new IllegalArgumentException("query not supported!"); }
/** * Only provides types that are also annotated with {@link Table}. */ @Override public Iterable<? extends TypeInformation<?>> getPersistentEntityTypes() { return StreamUtils .createStreamFromIterator(super.getPersistentEntityTypes().iterator()) .filter((typeInfo) -> typeInfo.getType().isAnnotationPresent(Table.class)) .collect(Collectors.toList()); }
/** * Only provides types that are also annotated with {@link Table}. */ @Override public Iterable<? extends TypeInformation<?>> getPersistentEntityTypes() { return StreamUtils .createStreamFromIterator(super.getPersistentEntityTypes().iterator()) .filter((typeInfo) -> typeInfo.getType().isAnnotationPresent(Table.class)) .collect(Collectors.toList()); }
protected Object executeStream(N1qlQuery query, Class<?> typeToRead) { logIfNecessary(query); return StreamUtils.createStreamFromIterator(executeCollection(query, typeToRead).iterator()); }
/** * Returns a {@link Stream} backed by the given {@link CloseableIterator} and forwarding calls to * {@link Stream#close()} to the iterator. * * @param iterator must not be {@literal null}. * @return * @since 2.0 */ public static <T> Stream<T> createStreamFromIterator(CloseableIterator<T> iterator) { Assert.notNull(iterator, "Iterator must not be null!"); return createStreamFromIterator((Iterator<T>) iterator).onClose(() -> iterator.close()); }
private Stream<String> getColumnNameStream(String prefix) { return StreamUtils.createStreamFromIterator(entity.iterator()) // .flatMap(p -> getColumnNameStream(p, prefix)); }
private Stream<String> getColumnNameStream(String prefix) { return StreamUtils.createStreamFromIterator(entity.iterator()) // .flatMap(p -> getColumnNameStream(p, prefix)); }
protected Object executeStream(N1qlQuery query, Class<?> typeToRead) { logIfNecessary(query); return StreamUtils.createStreamFromIterator(executeCollection(query, typeToRead).iterator()); }
/** * <p> * Execute a retrieval query. The query engine will return this in an iterator, which may need conversion to a single * domain entity or a stream. * </P> * * @param query The query to run * @param queryMethod Holds metadata about the query, is paging etc * @return Query result */ private Object executeFindQuery(final KeyValueQuery<?> query, final QueryMethod queryMethod) { Iterable<?> resultSet = this.keyValueOperations.find(query, queryMethod.getEntityInformation().getJavaType()); if (!queryMethod.isCollectionQuery() && !queryMethod.isPageQuery() && !queryMethod.isSliceQuery() && !queryMethod .isStreamQuery()) { // Singleton result return resultSet.iterator().hasNext() ? resultSet.iterator().next() : null; } if (queryMethod.isStreamQuery()) { return StreamUtils.createStreamFromIterator(resultSet.iterator()); } return resultSet; }
@Override protected Object doExecute(final AbstractJpaQuery query, Object[] values) { if (!SurroundingTransactionDetectorMethodInterceptor.INSTANCE.isSurroundingTransactionActive()) { throw new InvalidDataAccessApiUsageException(NO_SURROUNDING_TRANSACTION); } Query jpaQuery = query.createQuery(values); // JPA 2.2 on the classpath if (streamMethod != null) { return ReflectionUtils.invokeMethod(streamMethod, jpaQuery); } // Fall back to legacy stream execution PersistenceProvider persistenceProvider = PersistenceProvider.fromEntityManager(query.getEntityManager()); CloseableIterator<Object> iter = persistenceProvider.executeQueryWithResultStream(jpaQuery); return StreamUtils.createStreamFromIterator(iter); } }