4
respostas

[Dúvida] Metodo granvando duas vezes no banco de dados

 private void pesquisarSobreUmArtista() {
        Artista artista = new Artista();
        System.out.println("Digite um nome para buscarmos informacoes");
        var nomeArtista = reader.nextLine();
        System.out.println(ConsultaChatGPT.obterTraducao(nomeArtista));

        System.out.println("Deseja cadastrar o: " + nomeArtista + "(S/N)");
        var cadastrar = reader.nextLine();
        if (cadastrar.equalsIgnoreCase("s")) {

            System.out.println("O tipo de(a) " + nomeArtista + " e (Solo, dupla, banda)");
            Tipo genero = Tipo.valueOf(reader.nextLine().toUpperCase());
            artista = new Artista(nomeArtista, genero);
            repository.save(artista);
            System.out.println("Artista cadastrado com sucesso");
        }
        
        System.out.println("Deseja cadastrar uma musica? (S/N)");
        var cadastrarMusica = reader.nextLine();
        while (!cadastrarMusica.equalsIgnoreCase("n")) {
            System.out.println("Digite o nome da musica");
            var nomeMusica = reader.nextLine();
            Musica musica = new Musica(nomeMusica);
            musica.setArtista(artista.get());
            artista.get().getMusica().add(musica);
            repository.save(artista.get());
            System.out.println("Musica cadastrada com sucesso");
            System.out.println("Deseja cadastrar uma musica? (S/N)");
            cadastrarMusica = reader.nextLine();
        }
    }

esse trecho de codigo esta sando o artista duas vezes no meu banco de dados e ja fucei aqui e ainda nao descobri o porque

4 respostas

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

acho que era esse o erro

 private void pesquisarSobreUmArtista() {
        new Artista();
        Artista artista;
        System.out.println("Digite um nome para buscarmos informacoes");
        var nomeArtista = reader.nextLine();
        System.out.println(ConsultaChatGPT.obterTraducao(nomeArtista));

        System.out.println("Deseja cadastrar o: " + nomeArtista + "(S/N)");
        var cadastrar = reader.nextLine();
        if (cadastrar.equalsIgnoreCase("s")) {

            System.out.println("O tipo de(a) " + nomeArtista + " e (Solo, dupla, banda)");
            Tipo genero = Tipo.valueOf(reader.nextLine().toUpperCase());
            artista = new Artista(nomeArtista, genero);
            System.out.println("Artista cadastrado com sucesso");

            System.out.println("Deseja cadastrar uma musica? (S/N)");
            var cadastrarMusica = reader.nextLine();
            while (!cadastrarMusica.equalsIgnoreCase("n")) {
                System.out.println("Digite o nome da musica");
                var nomeMusica = reader.nextLine();
                Musica musica = new Musica(nomeMusica); // criando a minha musica
                musica.setArtista(artista.get()); // setando o artista na musica
                artista.get().getMusica().add(musica); // setando a musica no artista

                repository.save(artista.get());// salvando o artista

                System.out.println("Musica cadastrada com sucesso");
                System.out.println("Deseja cadastrar uma musica? (S/N)");
                cadastrarMusica = reader.nextLine();
            }
        }
    }

Resolvido

notei que estava chamando chamando o metodo para salvar duas vezes

Boa noite Francisco! Tudo bem com você?

Fico feliz em saber que conseguiu solucionar o erro em que ocorria o salvamento duplicado do artista no banco. Esse retorno informando como solucionou é muito importante.

Abraços e bons estudos.