Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Solução: Desafio criar a função para atualizar registro (Spring Data)

Joguei no google apereceu de cara o Forum da Alura, algum aluno dizendo que era no método save mesmo, do "CrudRepository" .

A solução que fiz, pega o id e seta a nova descricao, nesse registro identificado pelo Id. Antes de solicitar o Id a aplicação lista todos os registros do banco para que o usuário saiba (com o banco tendo poucos registros, ok). Funcionou.

Na Classe CrudCargoService adicionei esses metodos.

    public void listar() {
        Iterable lista = cargoRepository.findAll();

        for (Iterator iterator = lista.iterator(); iterator.hasNext();) {
            Cargo cargo = (Cargo) iterator.next();
            System.err.println(cargo.getId() + " - " + cargo.getDescricao());
        }
    }

    public void atualizar(Scanner scanner) {
        this.listar();

        System.out.println("Informe o Id do Cargo relacionado, para atualizar");
        int id = scanner.nextInt();

        System.out.println("Informe a nova descricao do Cargo");
        String descricao = scanner.next();

        Cargo cargo = new Cargo();
        cargo.setId(id);
        cargo.setDescricao(descricao.toUpperCase());

        cargoRepository.save(cargo);

        System.out.println("Atualizado");

    }

Na Classe SpringDataApplication, fiz alterações no metodo run() adicionado a opção para atualizar o registro.

        while (system) {
            System.out.println("Qual a acao vc qr executar?");
            System.out.println("0 - Sair");
            System.out.println("1 - Cargo");
            System.out.println("2 - Atualizar um cargo existente");

            int action = scanner.nextInt();

            if (action == 1) {
                cargoService.inicial(scanner);
            } if (action == 2) {
                cargoService.atualizar(scanner);
            } if (action <= 0 || action > 2){
                system = false;
            }
        }
1 resposta
solução!

Muito bom Eron, obrigado por compartilhar :)