当前位置: 首页 > 知识库问答 >
问题:

尝试将Spring Data JPA与spring boot一起使用时,出现无法创建entityManager的错误

卓宏达
2023-03-14

我目前正在工作一个POC使用spring boot与Spring Data JPA。

我想用Spring Data JPA从数据库中提取一个记录。

我得到以下错误

创建名为“Book Repository”的bean时出错:设置bean属性“Entity Manager”时无法创建类型为[org.springframework.orm.jpa.SharedEntityManagerCreator]的内部bean“(内部bean)”;嵌套异常为org.springframework.beans.factory.BeanCreationException:创建名为“(内部bean)#2”的bean时出错:设置构造函数参数时无法解析对bean“Entity ManagerFactory”的引用;嵌套异常为org.springframework.beans.factory.noSuchBeanDefinitionException:未定义名为“Entity ManagerFactory”的bean

下面是我的配置类:

package com.boot.configration;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;

@EnableAutoConfiguration
@ComponentScan
@EnableJpaRepositories
public class ApplicationStarter {
    public static void main (String[] args) {
        SpringApplication.run(ApplicationStarter.class, args);
    }

}

下面是我的仓库

package com.boot.configration;

import org.springframework.data.jpa.repository.JpaRepository;

import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

@Repository
public interface BookRepository extends JpaRepository<Book, String> {
    public Iterable<Book> findBooksByAuthor(@Param("author") String author);
}

这是我的控制器

@RestController
public class BookController {
    @Autowired
    protected BookRepository bookRepository;

    @RequestMapping(value = "/isbn")
    @ResponseBody
    public String book() {
        Book book = bookRepository.findOne("2222222");
        return "Book Name is = " + book.getTitle()+ " "  + "Author is = " + book.getAuthor();
    }

}

在pom.xml中,我有以下依赖项:

<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>BOOT</groupId>
    <artifactId>SpringBootProject</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.0.0.RC1</version>
    </parent>
    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <url>http://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/snapshot</url>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <url>http://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>
    <name>SpringBootProject</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
    </dependencies>
</project>

请帮我解决这个错误

共有2个答案

林国安
2023-03-14

我认为您缺少了数据库驱动程序依赖项。就像你在使用posgress,你需要提供驱动程序jar。

    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <scope>runtime</scope>
    </dependency>
蓝夕
2023-03-14

您可以尝试使用spring-boot1.0.2版?

 类似资料:
  • 我是Java新手,在赋值时遇到了一些麻烦。我需要创建一个方法来检查一个双倍的值,如果它大于700美元,那么15%的折扣将应用于CourseFeesInCAD变量,并将布尔值设置为true。否则没有折扣,布尔值将设置为(或保持)为false。我对下面代码的问题(除了缺乏经验)是它给出了一个非法字符:\u0000错误。 我相信\u0000是空字符,但我没有任何字符类型变量。它似乎与行 当我注释掉该行时

  • 我有一个通过http承载图像的地理服务器。我的客户端站点使用https。我一直在使用openlayers,一切都很好。现在我正试图转移到cesiumjs,我在IE或Edge中没有得到任何图像(不幸的是,我无法测试其他浏览器)。如果使用bing地图,我可以在我的客户机中获取图像,因此客户机代码在其他情况下是可用的。在浏览器控制台中,我看到: SEC7117:网络请求超文本传输协议://[myserv

  • 在嵌入式TomEE容器中运行Arquillian测试时,我得到了以下错误

  • 我是Micronaut框架的新手,我正在尝试使用entitymanager创建我的存储库。我这样创建了我的存储库 我使用这个类实现接口并注入entitymanager 问题是我一直有这个错误: PS:我已经启用了注释处理

  • 问题内容: 尝试在我的js代码中使用DOMParser时遇到问题。在我的代码中,我通过xmlhttp.responseText soap响应检索了一个xml文件。我希望能够以JSON格式访问其元素,因此我的代码如下所示: 我收到此错误消息:ReferenceError:未定义DOMParser 编辑:此链接对我不起作用,因为我的JavaScript不在HTML页面中,因为它是一个node.js文件