由于我司整合了用spring boot 整合mybatis和jpa,本地跑得飞起,一发布线上,直接熄火。
这个坑太大了…
线上运行报错:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' ....
解决方法:
由于我们不使用jpa但由于引入我司的基础包由此依赖jpa,不知道是idea太强大了还是咋的,本地运行项目跑得飞起,发布到线上就GG;
我们的解决办法:
因为springboot项目启动会对我们依赖的jpa的相关JpaRepositoriesAutoConfiguration和HibernateJpaAutoConfiguration自动配置类注入相关的值;
1.在启动类上排除JpaRepositoriesAutoConfiguration和HibernateJpaAutoConfiguration类即可解决;
@SpringBootApplication(
exclude = {
JpaRepositoriesAutoConfiguration.class,
HibernateJpaAutoConfiguration.class
}
)
注意:如果只排除HibernateJpaAutoConfiguration类会报At least one JPA metamodel must be present! ,再把JpaRepositoriesAutoConfiguration类排除既可。