Transacional e Stream na primavera
Eu tento entender por que esse código não funciona
No componente:
@PostConstruct
public void runAtStart(){
testStream();
}
@Transactional(readOnly = true)
public void testStream(){
try(Stream<Person> top10ByFirstName = personRepository.findTop10ByFirstName("Tom")){
top10ByFirstName.forEach(System.out::println);
}
}
E repositório:
public interface PersonRepository extends JpaRepository<Person, Long> {
Stream<Person> findTop10ByFirstName(String firstName);
}
Eu recebo:
org.springframework.dao.InvalidDataAccessApiUsageException: você está tentando executar um método de consulta de streaming sem uma transação circundante que mantenha a conexão aberta para que o Stream possa realmente ser consumido. Verifique se o código que consome o fluxo usa @Transactional ou qualquer outra maneira de declarar uma transação (somente leitura).