2016-07-30 34 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