Closeable closeable = null;
if (query instanceof JpaQuery) {
JpaQuery<T> elQuery = (JpaQuery<T>) query;
elQuery.setHint(QueryHints.RESULT_SET_TYPE, ResultSetType.ForwardOnly);
elQuery.setHint(QueryHints.SCROLLABLE_CURSOR, true);
final Cursor cursor = elQuery.getResultCursor();
closeable = new Closeable() {
@Override
public void close() throws IOException {
cursor.close();
}
};
iterator = cursor;
} else {
iterator = query.getResultList().iterator();