2016-07-30 81 views
1

我使用spring-boot-starter-data-jpa从mysql获取数据。如果发生更改,则创建bean错误Spring数据jpa实体包

当我的项目结构是(Project.java文件是在应用程序包)一切正常,但是当我把Project.java实体文件来实体包我得到了波纹管例外:

org.springframework。 beans.factory.BeanCreationException:创建名为'controller'的bean时出错:autowired依赖关系注入失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装入字段:private com.gehive.microservice.data.repositories.ProjectRepository com.gehive.microservice.application.Controller.repo;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'projectRepository'的bean时出错:init方法的调用失败;嵌套的例外是java.lang.IllegalArgumentException异常:不是一个托管类型:类com.gehive.microservice.data.entities.Project

无例外的工作:

enter image description here

如果结构这样的我有例外:

enter image description here

回答

3

春季开机的默认@ComponntScan(就是那个@SpringBootApplication继承)扫描当前包和它的所有子包。

在第一种情况下,Project.javaApplication.java位于同一包中,所以没关系。

要使项目从另一个包中工作,请将名称更改为com.gehive.microservice.application.entities或包含主类的任何子包。

通常我会将引导类和所有配置类保存在包名为<com|org|etc>.<myCompany>.<myProject>的包中,然后创建其他包作为此包的子包。

Spring Data JPA还有一些与包有关的其他条件。看看Docs