A variável topico é criada com o metodo form.converter, que retorno um new Topico. Porem em nenhum momento é passado o ID (que é auto increment no BD), e mesmo assim o quando o metodo topico.getId() é chamdo, ele retorna o Id conrrespondente ao do BD sem fazer nenhuma consulta
@PostMapping
public ResponseEntity<TopicoDto> cadastrar(@RequestBody TopicoForm form, UriComponentsBuilder uriBuilder) {
Topico topico = form.converter(cursoRepository);
topicoRepository.save(topico);
URI uri = uriBuilder.path("/topicos/{id}").buildAndExpand(topico.getId()).toUri();
return ResponseEntity.created(uri).body(new TopicoDto(topico));
}