Spring Boot:考虑在您的配置中定义一个名为“entityManagerFactory”

我在尝试启动 Spring Boot 应用程序时收到以下错误:


注意:此错误只有当我把发生@Autowired批注过IDeviceRepository iDeviceRepository;的DeviceDao.java类


我还没有得到DeviceDao.java持久化到数据库 - 但正在创建实体


> *************************** 

> APPLICATION FAILED TO START

> ***************************

> Description: 

> Field iDeviceRepository in com.abc.dao.DeviceDao required a bean named 'entityManagerFactory' that could not be found. 

> Action:

> Consider defining a bean named 'entityManagerFactory' in your configuration.

这是项目的目录结构:


├───src

│   ├───main

│   │   ├───java

│   │   │   └───com

│   │   │       └───abc

│   │   │           ├───controller

│   │   │           ├───dao

│   │   │           │   └───repositories

│   │   │           ├───init

│   │   │           ├───model

│   │   │           ├───service

│   │   │           └───util

│   │   │               ├───common

│   │   │               ├───enums

│   │   │               ├───exceptions

│   │   │               └───interfaces

│   │   └───resources

│   │       ├───static

│   │       │   ├───css

│   │       │   ├───fonts

│   │       │   ├───img

│   │       │   └───js

│   │       └───templates

com.abc.init.Application.java


package com.abc.init;


@SpringBootApplication

@EnableJpaRepositories("com.abc.dao.repositories")

@EntityScan(basePackages = { "com.abc.model" })

@ComponentScan(basePackages={ "com.abc.controller", "com.abc.service", "com.abc.dao" })

public class Application

{

    public static void main(String[] args) {

        SpringApplication.run(Application.class, args);

    }

}


宝慕林4294392
浏览 178回答 2
2回答

慕娘9325324

在 spring-boot 中,您不需要使用存储库注释来注释存储库类。@Repository您只需要在您的界面上扩展 JPARepository,Spring-boot 将负责其余的工作。例如:public interface YourRepository extends JpaRepository<YourDomain, Serializable> {&nbsp; &nbsp; YourDomain findBysomeparameter(Long parameter);}而且您不需要添加这些注释:@EnableJpaRepositories@EntityScan@ComponentScan除非您进行一些配置,否则 Spring-boot 会自动执行此操作。我希望这将有所帮助。

墨色风雨

几个月前,当我开始学习 Spring-Boot 时,我遇到了类似的问题。我不确定 Spring 是否认真对待目录结构。我的目录结构与@Pawan 相似。您所要做的就是将您的存储库文件夹向上移动一级,即将其移动到父abc文件夹中。使用@Service 注释您的 DeviceDao 类。最后更新@EnableJpaRepository 中的存储库路径。这对我有用。希望这有帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java