1
resposta

[Projeto] Erro LiterAlura

Estou com erro na aplicação:

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2024-07-16T14:56:04.435-03:00 ERROR 11004 --- [LiterAlura] [ main] o.s.boot.SpringApplication : Application run failed

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'literAluraApplication': Unsatisfied dependency expressed through field 'principal': Error creating bean with name 'principal' defined in file [C:\Users\ericw\LiterAlura\target\classes\br\com\alura\LiterAlura\Principal\Principal.class]: Unsatisfied dependency expressed through constructor parameter 1: Error creating bean with name 'livroService': Unsatisfied dependency expressed through field 'livroRepository': Error creating bean with name 'livroRepository' defined in br.com.alura.LiterAlura.Livro.LivroRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Not a managed type: class br.com.alura.LiterAlura.Livro.Livro at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:787) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:767) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:508) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1421) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:599) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:962) ~[spring-context-6.1.8.jar:6.1.8] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.8.jar:6.1.8] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.0.jar:3.3.0] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.0.jar:3.3.0] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.0.jar:3.3.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.0.jar:3.3.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.0.jar:3.3.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.0.jar:3.3.0] at br.com.alura.LiterAlura.LiterAluraApplication.main(LiterAluraApplication.java:16) ~[classes/:na]

o link do repositorio do github para ver as classes detalhadamente: https://github.com/Eric-Nascimento/LiterAlura

1 resposta

Olá, Eric! Tudo bem?

Analisando o projeto que você compartilhou consegui identificar dois problemas que estavam causando esse erro em questão. Vou listá-los abaixo de forma separada para ficar de fácil compreensão.

  1. Annotations utilizadas para a sua Entity "Livro":

    Na sua classe Livro.java você está utilizando as Annotations corretas, mas de uma biblioteca que o Spring Boot não reconhece, logo, para o seu projeto ela não é reconhecida como uma entidade. Você está importando da biblioteca javax, mas a que o Spring reconhece é a jakarta.

    Para resolver, apague as importações que você tem para a biblioteca javax e altere para jakarta, segue um exemplo de como ficará:

    import jakarta.persistence.Entity;
    import jakarta.persistence.GeneratedValue;
    import jakarta.persistence.GenerationType;
    import jakarta.persistence.Id;
    
  2. Problemas com a versão da dependência do Hibernate que você está usando:

    A versão <version>5.6.12.Final</version> do Hibernate que você está usando no projeto apresenta problemas de compatibilidade com as Annotations, em geral, por ser uma versão antiga, então recomendo que utilize uma versão mais atual, por exemplo, a <version>6.5.2.Final</version>.

    Para alterar, acesse o seu arquivo "pom.xml" e busque pela dependência do Hibernate e alterar para a versão que comentei anteriormente. Exemplo:

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>6.5.2.Final</version> <!-- Verifique a versão mais recente -->
    </dependency>
    

Ao aplicar os ajustes o seu código deve funcionar sem problemas

Espero ter ajudado e bons estudos!

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