web-dev-qa-db-fra.com

Spring boot (mysql avec jpa): Aucun bean nommé 'entityManagerFactory' disponible

J'ai commencé à construire une ( d'abord) application Spring Boot et voici ma classe principale Spring Boot ( Code complet sur github )

@EnableAutoConfiguration
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

Et voici le pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <Java.version>1.8</Java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jersey</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-Java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

Je reçois toujours l'erreur ci-dessous. Qu'est-ce que je manque à ajouter? Pourquoi dois-je ajouter un bean bean nommé 'entityManagerFactory' ?? et est-il nécessaire même après avoir utilisé une botte à ressort ??

Mon repo ressemble à ça si ça compte

public interface RegistrationRepo extends JpaRepository<User, Long> {
     User findByEmail(String email); 
}  

. ____ _ __ _ _/\/ ' __ _ () _ __ __ _\\\\ (( ) _ | '_ |' | | '/ `|\\\\\/) | | ) | | | | | || ( | | )))) '| ____ | . | | | | | | __, |//// ========= | _ | ============== | ___/=/ //_/:: Spring Boot :: (v1.5.6.RELEASE)

13/09/2017 12: 48: 38.808 INFO 15361 --- [main] com.rightlink.RightLinkApplication: Démarrage de RightLinkApplication sur Admins-MacBook-Pro.local avec PID 15361 (/Users/sureshatta/Documents/workspace-sts-3.9 .0.RELEASE/RightLink/target/classes démarré par sureshatta dans /Users/sureshatta/Documents/workspace-sts-3.9.0.RELEASE/RightLink) 2017-09-13 12: 48: 38.811 INFO 15361 --- [main ] com.rightlink.RightLinkApplication: aucun jeu de profils actif, retour aux profils par défaut: par défaut 2017-09-13 12: 48: 38.865 INFO 15361 --- [principal] ationConfigEmbeddedWebApplicationContext: Actualisation org.springframework.boot.context.embedded. AnnotationConfigEmbeddedWebApplicationContext @ 120d6fe6: date de démarrage [Wed Sep 13 12:48:38 IST 2017]; racine de la hiérarchie de contexte 2017-09-13 12: 48: 40.380 INFO 15361 --- [main] sbcetTomcatEmbeddedServletContainer: Tomcat initialisé avec le (s) port (s): 8181 (http) 2017-09-13 12: 48: 40.402 INFO 15361 - - [principal] o.Apache.catalina.core.StandardService: démarrage du service [Tomcat] 2017-09-13 12: 48: 40.403 INFO 15361 --- [principal] org.Apache.catalina.core.StandardEngine: démarrage du servlet Moteur: Apache Tomcat/8.5.16 2017-09-13 12: 48: 40.566 INFO 15361 --- [ost-startStop-1] oaccC [Tomcat]. [Localhost]. [/]: Initialisation de Spring WebApplicationContext Embedded Spring 2017-09 -13 12: 48: 40.567 INFO 15361 --- [ost-startStop-1] osweb.context.ContextLoader: Root WebApplicationContext: initialisation terminée en 1705 ms 2017-09-13 12: 48: 40.743 INFO 15361 --- [ ost-startStop-1] osbwservlet.ServletRegistrationBean: Mappage du servlet: 'dispatcherServlet' vers [/] 2017-09-13 12: 48: 40.752 INFO 15361 --- [ost-startStop-1] osbwservlet.FilterRegistrationBean: Filtre de mappage : 'characterEncodingFilter' à: [/ ] 2017-09-13 12: 48: 40.753 INFO 15361 --- [ost-startStop-1] osbwservlet.FilterRegistrationBean: Filtre de mappage: 'hiddenHttpMethodFilter' vers: [/] 2017-09-13 12: 48: 40.753 INFO 15361 --- [ost-startStop-1] osbwservlet.FilterRegistrationBean: Filtre de mappage: 'httpPutFormContentFilter' vers: [/ ] 2017-09-13 12: 48: 40.753 INFO 15361 - - [ost-startStop-1] osbwservlet.FilterRegistrationBean: Filtre de mappage: 'requestContextFilter' à: [/] 2017-09-13 12: 48: 40.844 WARN 15361 --- [main] ationConfigEmbeddedWebApplicationContext: Exception rencontrée lors de l'initialisation du contexte - annulation de la tentative d'actualisation: org.springframework.beans.factory.UnsatisfiedDependencyException: erreur lors de la création du bean avec le nom 'registerController': dépendance non satisfaite exprimée via le champ 'regServices'; l'exception imbriquée est org.springframework.beans.factory.UnsatisfiedDependencyException: erreur lors de la création du bean avec le nom 'regService': dépendance non satisfaite exprimée via le champ 'registrationRepo'; l'exception imbriquée est org.springframework.beans.factory.BeanCreationException: erreur lors de la création du bean avec le nom 'registrationRepo': impossible de créer le bean interne '(bean interne) # 43c67247' de type [org.springframework.orm.jpa.SharedEntityManagerCreator] lors de la définition du bean propriété 'entityManager'; l'exception imbriquée est org.springframework.beans.factory.BeanCreationException: erreur lors de la création du bean avec le nom '(bean interne) # 43c67247': impossible de résoudre la référence au bean 'entityManagerFactory' lors de la définition de l'argument constructeur; L'exception imbriquée est org.springframework.beans.factory.NoSuchBeanDefinitionException: aucun bean nommé 'entityManagerFactory' disponible 2017-09-13 12: 48: 40.849 INFO 15361 --- [main] o.Apache.catalina.core.StandardService: Arrêt du service [Tomcat] 13/09/2017 12: 48: 40.903 INFO 15361 --- [main] utoConfigurationReportLoggingInitializer:

Erreur lors du démarrage d'ApplicationContext. Pour afficher le rapport de configuration automatique, réexécutez votre application avec le "débogage" activé. 13/09/2017 12: 48: 40.975 ERREUR 15361 --- [principal] o.s.b.d.LoggingFailureAnalysisReporter:


LA DEMANDE N'A PAS ÉTÉ DÉMARRÉE


La description:

Le champ registrationRepo dans com.rightlink.services.RegistrationService nécessitait un bean nommé 'entityManagerFactory' introuvable.

Action:

Pensez à définir un bean nommé 'entityManagerFactory' dans votre configuration.

application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/Test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
server.port=8181

J'ai essayé d'ajouter @Repository annotation pour le dépôt, et également ajouté @enableJpaRepositories annotation dans la classe principale. Rien n'y fait.

10
Suresh Atta

Le problème ne concerne pas directement la version de démarrage et les problèmes concernent les bocaux d'hibernation obsolètes. Depuis que j'ai ajouté la prise en charge JPA au projet, démarrez en interne en utilisant (??) Hibernate comme implémentation JPA et essayez d'utiliser (??) ces jars. Depuis que mon dépôt local a corrompu hibernate-entity-* jars, cette étrange erreur se produit.

Leur commentaire dans le code confirmant qu'ils utilisent hibernate en interne.

 <!-- JPA Data (We are going to use Repositories, Entities, Hibernate, etc...) -->

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

Suppression du dossier d'hibernation complet de mon référentiel local maven et maintenant il semble correct.

4
Suresh Atta