1
resposta

[Dúvida] Erro no banco de dados, não salva nem cria tabela devido Repository

Boa tarde pessoal!
Não está salvando no banco de dados, está dando erro no repositorio.
Estou fazendo por conta, diferente do exercício, já tentei mover o pacote repository para abaixo da classe principal e dá alguns erros:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jakeboxApplication': Unsatisfied dependency expressed through field 'artistaRepository': Error creating bean with name 'artistaRepository' defined in principal.repository.ArtistaRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Not a managed type: class model.Artista

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'artistaRepository' defined in principal.repository.ArtistaRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Not a managed type: class model.Artista

Git:
https://github.com/DolfoMendes/jakebox.git

Obrigado!

1 resposta

Oi Rodolfo! Tudo bem?

Primeiramente, o link que você compartilhou está quebrado e não consegui acessar o seu projeto, mas irei ponderar algumas coisas com base nas mensagens de erro que você enviou.

Pelo erro que você está enfrentando, parece que o Spring não está conseguindo gerenciar a entidade Artista. Isso geralmente acontece quando a classe não está sendo corretamente detectada como uma entidade JPA. Vamos tentar algumas soluções para resolver isso:

  1. Verifique a Anotação @Entity: Certifique-se de que a classe Artista está anotada com @Entity. Essa anotação é essencial para que o JPA reconheça a classe como uma entidade que deve ser gerenciada.

    import javax.persistence.Entity;
    
    @Entity
    public class Artista {
        // seus atributos e métodos
    }
    
  2. Pacote de Escaneamento: O Spring precisa saber onde procurar suas entidades. Certifique-se de que o pacote onde está a classe Artista está sendo escaneado. Se a classe Artista estiver em um pacote diferente do pacote principal da aplicação, você pode especificar isso usando a anotação @EntityScan na sua classe de configuração principal.

    import org.springframework.boot.autoconfigure.domain.EntityScan;
    
    @SpringBootApplication
    @EntityScan(basePackages = {"seu.pacote.model"})
    public class ScreensoundApplication {
        // seu código
    }
    
  3. Verifique o JpaRepository: No ArtistaRepository, certifique-se de que você está estendendo JpaRepository<Artista, Long> corretamente e que a classe Artista e o tipo do ID estão corretos.

    import org.springframework.data.jpa.repository.JpaRepository;
    
    public interface ArtistaRepository extends JpaRepository<Artista, Long> {
        // seus métodos
    }
    

Se essas verificações não resolverem o problema, reenvie o link do repositório.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.