Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
10
respostas

Erro ao tentar subir a aplicação

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean]: Factory method 'entityManagerFactory' threw exception; nested exception is java.lang.NoSuchMethodError: org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.setPersistenceUnitRootLocation(Ljava/lang/String;)

10 respostas

Oi Cristiano, esse é um erro incomum de ver em apps que usam o springboot.. como está seu pom.xml? Pq NoSuchMethodError geralmente é problema de versão da biblioteca..

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>br.com.alura.listavip</groupId>
    <artifactId>listavip</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>1.4.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            <version>1.4.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>1.4.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.15</version>
        </dependency>
    </dependencies>
</project>

Opa fala Cristiano beleza? Você criou algum construtor?

Não entendi a pergunta, Alisson.

Oi Cristiano, nessa parte aqui:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>1.4.2.RELEASE</version>
        </dependency>

Tenta trocar para 1.4.1.RELEASE ? Mas é só um chute...

Troquei e não resolve, continua o mesmo erro.

Bom, alguma lib do módulo do hibernate do spring foi resolvida com uma versão errada.. um outro chute, é pedir para o maven baixar tudo de novo...

solução!

Após alterar meu arquivo pom.xml exatamente como estava sugerido no vídeo, o erro não ocorreu mais. Segue o meu arquivo pom.xml como ficou:

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>1.3.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            <version>1.3.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>1.3.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.39</version>
        </dependency>
    </dependencies>

Observação MUITO IMPORTANTE: Tenho notado muitas das vezes que as dependencias do Maven nos vídeos não são as mesmas dependencias nos arquivos textos de explicação, e ainda muitos instrutores sugerem para usar as dependecias mais novas, sendo que em muitos dos casos estão ocorrendo erros, conforme esse que relatei e é onde se é perdido muito tempo na depuração do erro. Fica aqui a dica para todos os alunos a tentarem seguir as dependecias do Maven que estão nos videos e nao as que estão nos arquivos de explicação, visto que a segunda alternativa não foi testada pelo instrutor responsável.