web-dev-qa-db-ja.com

Spring boot(mysql with jpa): 'entityManagerFactory'という名前のBeanは使用できません

first)スプリングブートアプリケーションの構築を開始し、これが私のスプリングブートメインクラスです( githubの完全なコード

@EnableAutoConfiguration
@SpringBootApplication
public class Application {

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

そして、これが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>

以下のエラーが引き続き発生します。追加するのに何が欠けていますか? 「entityManagerFactory」という名前のBean Beanを追加する必要があるのはなぜですか?スプリングブーツを使用した後でも必要ですか?

私のレポはそれが問題ならこのように見えます

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

。 ____ _ __ _ _/\ / '__ _)_ __ __ _\\\\(()_| '_ |'| | '/ `|\\\\\/)| |)| | | | | || (| |))))) '| ____ | 。|| ||| |__、|//// ========= | _ | ============== | ___/= /// _/::スプリングブート::(v1.5.6.RELEASE)

2017-09-13 12:48:38.808 INFO 15361 --- [main] com.rightlink.RightLinkApplication:PID 15361(/Users/sureshatta/Documents/workspace-sts-3.9でAdmins-MacBook-Pro.localでRightLinkApplicationを開始.0.RELEASE/RightLink/target/classesは、/ Users/sureshatta/Documents/workspace-sts-3.9.0.RELEASE/RightLinkのsureshattaによって開始されました2017-09-13 12:48:38.811 INFO 15361 --- [main ] com.rightlink.RightLinkApplication:アクティブなプロファイルが設定されていないため、デフォルトのプロファイルに戻ります。デフォルト2017-09-13 12:48:38.865 INFO 15361 --- [main] ationConfigEmbeddedWebApplicationContext:org.springframework.boot.context.embeddedを更新しています。 AnnotationConfigEmbeddedWebApplicationContext @ 120d6fe6:開始日[Wed Sep 13 12:48:38 IST 2017];コンテキスト階層のルート2017-09-13 12:48:40.380 INFO 15361 --- [main] sbcetTomcatEmbeddedServletContainer:ポートで初期化されたTomcat:8181(http)2017-09-13 12:48:40.402 INFO 15361- -[main] o.Apache.catalina.core.StandardService:サービスの開始[Tomcat] 2017-09-13 12:48:40.403 INFO 15361 --- [main] org.Apache.catalina.core.StandardEngine:サーブレットの開始エンジン:Apache Tomcat/8.5.16 2017-09-13 12:48:40.566 INFO 15361 --- [ost-startStop-1] oaccC [Tomcat]。[localhost]。[/]:Springの埋め込みWebApplicationContext 2017-09 -13 12:48:40.567 INFO 15361 --- [ost-startStop-1] osweb.context.ContextLoader:ルートWebApplicationContext:初期化は1705ミリ秒で完了2017-09-13 12:48:40.743 INFO 15361 --- [ ost-startStop-1] osbwservlet.ServletRegistrationBean:サーブレットのマッピング:「dispatcherServlet」を[/] 2017-09-13 12:48:40.752 INFO 15361 --- [ost-startStop-1] osbwservlet.FilterRegistrationBean:マッピングフィルター: 'characterEncodingFilter'から:[/] 2017-09-13 12:48:40.753 INFO 15361 --- [ost-startStop-1] osbwservlet.FilterRegistrationBean:マッピングフィルター: 'hiddenHttpMethodFilter'から:[/)2017- 09-13 12:48:40.753 INFO 15361 --- [ost-startStop-1] osbwservlet.FilterRegistrationBean:マッピングフィルター: 'httpPutFormContentFilter'から[/] 2017-09-13 12: 48:40.753 INFO 15361 --- [ost-startStop-1] osbwservlet.FilterRegistrationBean:マッピングフィルター: 'requestContextFilter'から[/] 2017-09-13 12:48:40.844 WARN 15361- -[main] ationConfigEmbeddedWebApplicationContext:コンテキストの初期化中に例外が発生しました-リフレッシュ試行をキャンセルします:org.springframework.beans.factory.UnsatisfiedDependencyException:名前 'registerController'でBeanを作成中にエラーが発生しました:フィールド 'regServices'で表現された満たされていない依存関係ネストされた例外はorg.springframework.beans.factory.UnsatisfiedDependencyException:名前 'regService'のBeanの作成エラー:フィールド 'registrationRepo'で表現された満たされていない依存関係。ネストされた例外はorg.springframework.beans.factory.BeanCreationException:名前 'registrationRepo'のBeanの作成エラー:Beanの設定中にタイプ[org.springframework.orm.jpa.SharedEntityManagerCreator]の内部Bean '(内部Bean)#43c67247'を作成できませんプロパティ 'entityManager';ネストされた例外はorg.springframework.beans.factory.BeanCreationException:名前 '(内部bean)#43c67247'のBeanの作成エラー:コンストラクター引数の設定中にBean 'entityManagerFactory'への参照を解決できません。ネストされた例外はorg.springframework.beans.factory.NoSuchBeanDefinitionException: 'entityManagerFactory'という名前のBeanはありません2017-09-13 12:48:40.849 INFO 15361 --- [main] o.Apache.catalina.core.StandardService:サービスの停止[Tomcat] 2017-09-13 12:48:40.903 INFO 15361 --- [main] utoConfigurationReportLoggingInitializer:

ApplicationContextの起動エラー。自動構成レポートを表示するには、「デバッグ」を有効にしてアプリケーションを再実行します。 2017-09-13 12:48:40.975エラー15361 --- [main] o.s.b.d.LoggingFailureAnalysisReporter:


アプリケーションを開始できませんでした


説明:

Com.rightlink.services.RegistrationServiceのフィールドregistrationRepoには、見つからない「entityManagerFactory」という名前のBeanが必要でした。

アクション:

構成に「entityManagerFactory」という名前のBeanを定義することを検討してください。

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

リポジトリに@Repository注釈を追加しようとし、メインクラスに@enableJpaRepositories注釈も追加しました。何も役に立たない。

10
Suresh Atta

問題はブートバージョンに直接関係せず、問題は休止状態のjarファイルに関係しています。プロジェクトにJPAサポートを追加したので、JPA実装としてHibernateを使用して(??)内部で起動し、それらのjarを使用(??)しようとします。ローカルリポジトリでhibernate-entity-* jarsが破損しているため、この奇妙なエラーが発生しています。

コード内のコメント 内部で休止状態を使用していることを確認します。

 <!-- 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>

Mavenローカルリポジトリから完全なHibernateフォルダーを削除しましたが、今では問題ありません。

4
Suresh Atta