Да, вы можете сделать так, чтобы ваш метод запроса возвращал тип Stream в Spring Data JPA и по-прежнему использовал собственные запросы:
@Query(value = "YOUR QUERY", nativeQuery = true)
Stream<YourRecordType> findAllRecords();
Помните, чтобы закрыть ресурс Stream, как только вы закончили sh потребление из него, как рекомендовано в документах Spring Data JPA:
Поток потенциально оборачивает базовые ресурсы хранилища данных c и поэтому должен быть закрыт после использования. Вы можете вручную закрыть поток с помощью метода close () или с помощью блока Java 7 try-with-resources (...)
Вот соответствующие документы и пример .