diff --git a/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java b/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java index 35c28e8ec..777011cb4 100644 --- a/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java +++ b/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java @@ -115,7 +115,7 @@ public enum PersistenceProvider implements QueryExtractor,ProxyIdAccessor { */ @Override public CloseableIterator executeQueryWithResultStream(Query jpaQuery) { - return new HibernateScrollableResultsIterator(jpaQuery); + return new HibernateScrollableResultsIterator(jpaQuery); } }, @@ -197,6 +197,10 @@ public enum PersistenceProvider implements QueryExtractor,ProxyIdAccessor { return ((PersistenceCapable) entity).pcFetchObjectId(); } + /* + * (non-Javadoc) + * @see org.springframework.data.jpa.provider.PersistenceProvider#executeQueryWithResultStream(javax.persistence.Query) + */ @Override public CloseableIterator executeQueryWithResultStream(Query jpaQuery) { return new OpenJpaResultStreamingIterator(jpaQuery); @@ -396,8 +400,7 @@ public enum PersistenceProvider implements QueryExtractor,ProxyIdAccessor { * @param the domain type to return≠ * @since 1.8 */ - @SuppressWarnings("unchecked") - private static class HibernateScrollableResultsIterator implements CloseableIterator { + private static class HibernateScrollableResultsIterator implements CloseableIterator { private final ScrollableResults scrollableResults; @@ -419,8 +422,11 @@ public enum PersistenceProvider implements QueryExtractor,ProxyIdAccessor { * @see java.util.Iterator#next() */ @Override - public T next() { - return (T) scrollableResults.get()[0]; + public Object next() { + + Object[] row = scrollableResults.get(); + + return row.length == 1 ? row[0] : row; } /*