Java springboot(带jpa的mysql):没有名为';实体管理工厂&x27;可获得的

Java springboot(带jpa的mysql):没有名为';实体管理工厂&x27;可获得的,java,spring,jpa,exception,spring-boot,Java,Spring,Jpa,Exception,Spring Boot,开始构建(第一个)spring引导应用程序,这是我的spring引导主类() 下面是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

开始构建(第一个)spring引导应用程序,这是我的spring引导主类()

下面是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>

尝试为回购添加
@Repository
注释,并在主类中添加了
@enableJpaRepositories
注释。没什么帮助

问题不是直接与启动版本有关,而是与过时的hibernate JAR有关。由于我向项目添加了JPA支持,所以在内部使用(??)Hibernate作为JPA实现进行引导,并尝试使用这些JAR。由于我的本地回购已经损坏了hibernate entity-*JAR,所以发生了这个奇怪的错误

他们确认他们在内部使用hibernate

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

org.springframework.boot
spring引导启动器数据jpa

从my maven local repo中删除了完整的hibernate文件夹,现在看起来还可以。

Spring(更准确地说是JPA)需要知道EntityManager工厂在哪里,然后使用它来管理entity manager。参考@spiritwalker,但我不需要自定义数据源,希望使用默认数据源@ꜱᴜʀᴇꜱʜᴀᴛᴛᴀ 你确定这是你唯一的日志信息吗?@MangEngkus我相信是的。更新为完整的stacktrace。您共享的应用程序适用于我。使用
1.3.1.版本
1.5.6.版本
。我相信当您第一次下载1.5.6时,一个jar可能已经损坏。切换到该状态并运行
mvn dependency:purge local repository
以删除损坏的jar。是的,我还有一个spring boot应用程序
1.5.6。RELEASE
,它与您的设置相同。
public interface RegistrationRepo extends JpaRepository<User, Long> {
     User findByEmail(String email); 
}  
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
 <!-- 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>