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).

Respuestas a la pregunta(1)

Su respuesta a la pregunta