File tree Expand file tree Collapse file tree 4 files changed +14
-12
lines changed
hibernate-core/src/main/java/org/hibernate Expand file tree Collapse file tree 4 files changed +14
-12
lines changed Original file line number Diff line number Diff line change @@ -33,6 +33,11 @@ public interface ScrollableResults<R> extends AutoCloseable {
3333 */
3434 void close ();
3535
36+ /**
37+ * @return {@code true} if {@link #close()} was already called
38+ */
39+ boolean isClosed ();
40+
3641 /**
3742 * Advance to the next result.
3843 *
Original file line number Diff line number Diff line change 55package org .hibernate .query .internal ;
66
77import org .hibernate .Incubating ;
8+ import org .hibernate .ScrollableResults ;
89import org .hibernate .query .spi .CloseableIterator ;
9- import org .hibernate .query .spi .ScrollableResultsImplementor ;
1010
1111/**
1212 * @author Steve Ebersole
1515 */
1616@ Incubating
1717public class ScrollableResultsIterator <T > implements CloseableIterator <T > {
18- private final ScrollableResultsImplementor <T > scrollableResults ;
18+ private final ScrollableResults <T > scrollableResults ;
1919
20- public ScrollableResultsIterator (ScrollableResultsImplementor <T > scrollableResults ) {
20+ public ScrollableResultsIterator (ScrollableResults <T > scrollableResults ) {
2121 this .scrollableResults = scrollableResults ;
2222 }
2323
Original file line number Diff line number Diff line change 1818
1919import org .hibernate .CacheMode ;
2020import org .hibernate .FlushMode ;
21+ import org .hibernate .ScrollableResults ;
2122import org .hibernate .query .QueryFlushMode ;
2223import org .hibernate .HibernateException ;
2324import org .hibernate .LockMode ;
@@ -251,15 +252,12 @@ public Stream<R> getResultStream() {
251252 return stream ();
252253 }
253254
254- @ SuppressWarnings ( {"unchecked" , "rawtypes" } )
255255 @ Override
256- public Stream stream () {
257- final ScrollableResultsImplementor scrollableResults = scroll ( ScrollMode .FORWARD_ONLY );
258- final ScrollableResultsIterator iterator = new ScrollableResultsIterator <>( scrollableResults );
259- final Spliterator spliterator = spliteratorUnknownSize ( iterator , Spliterator .NONNULL );
260-
261- final Stream stream = StreamSupport .stream ( spliterator , false );
262- return (Stream ) stream .onClose ( scrollableResults ::close );
256+ public Stream <R > stream () {
257+ final ScrollableResults <R > results = scroll ( ScrollMode .FORWARD_ONLY );
258+ final Spliterator <R > spliterator =
259+ spliteratorUnknownSize ( new ScrollableResultsIterator <>( results ), Spliterator .NONNULL );
260+ return StreamSupport .stream ( spliterator , false ).onClose ( results ::close );
263261 }
264262
265263 @ Override
Original file line number Diff line number Diff line change 1414 */
1515@ Incubating
1616public interface ScrollableResultsImplementor <R > extends ScrollableResults <R > {
17- boolean isClosed ();
1817}
You can’t perform that action at this time.
0 commit comments