SpringBoot 啟動的時候提示 Field *** in *** required a bean named 'entityManagerFactory' that could not be found.


 錯誤截圖

 

后面發現原來和入口類代碼有關。

//@SpringBootApplication(scanBasePackages = {"org.jzc.odata.cboard","org.jzc.odata.cboard.odataservice","com.sdl.odata.api.service","com.sdl.odata.api.service.ODataService"})
@EnableAutoConfiguration(exclude = {HibernateJpaAutoConfiguration.class
        , DataSourceAutoConfiguration.class,
        DataSourceTransactionManagerAutoConfiguration.class })
@Configuration
@Import({
        ODataDataSourceConfiguration.class,
        ODataServiceConfiguration.class
})
@ComponentScan
@RestController
@ComponentScan(basePackages = {"org.jzc.odata.cboard","org.jzc.odata.cboard.odataservice","com.sdl.odata.api.service","com.sdl.odata.api.service.ODataService"})
public class ServiceContainer {

其中

@EnableAutoConfiguration(exclude = {HibernateJpaAutoConfiguration.class
        , DataSourceAutoConfiguration.class,
        DataSourceTransactionManagerAutoConfiguration.class })

這段的解釋如下,

參考

https://stackoverflow.com/questions/45350546/entitymanagerfactory-not-found-in-springboot

也就是說,不去掉@EnableAutoConfiguration 和里面exclude 包含對EntityManagerFactory 的注釋的話,EntityManagerFactory是不會被實例化的,這樣肯定就不能發現entityManagerFactory的Bean了。

那么解決方案就是把這段注釋掉,重新編譯打包

//@SpringBootApplication(scanBasePackages = {"org.jzc.odata.cboard","org.jzc.odata.cboard.odataservice","com.sdl.odata.api.service","com.sdl.odata.api.service.ODataService"})
//@EnableAutoConfiguration(exclude = {HibernateJpaAutoConfiguration.class
//        , DataSourceAutoConfiguration.class,
//        DataSourceTransactionManagerAutoConfiguration.class })
@Configuration
@Import({
        ODataDataSourceConfiguration.class,
        ODataServiceConfiguration.class
})
@ComponentScan
@RestController
@ComponentScan(basePackages = {"org.jzc.odata.cboard","org.jzc.odata.cboard.odataservice","com.sdl.odata.api.service","com.sdl.odata.api.service.ODataService"})
public class ServiceContainer {

再運行,成功了!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM