Transactional y Stream en Spring
Intento entender por qué este código no funciona
omponente @In:
@PostConstruct
public void runAtStart(){
testStream();
}
@Transactional(readOnly = true)
public void testStream(){
try(Stream<Person> top10ByFirstName = personRepository.findTop10ByFirstName("Tom")){
top10ByFirstName.forEach(System.out::println);
}
}
Y repositorio:
public interface PersonRepository extends JpaRepository<Person, Long> {
Stream<Person> findTop10ByFirstName(String firstName);
}
Yo obtengo
org.springframework.dao.InvalidDataAccessApiUsageException: está intentando ejecutar un método de consulta de transmisión sin una transacción circundante que mantenga la conexión abierta para que la transmisión se pueda consumir realmente. Asegúrese de que el código que consume la transmisión utiliza @Transactional o cualquier otra forma de declarar una transacción (solo lectura).