SpringBoot 启动的时候提示 Field *** in *** required a bean named 'entityManagerFactory' that could not be f

 错误截图

 

后面发现原来和入口类代码有关。

复制代码

//@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 {

复制代码

再运行,成功了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值