springboot 整合mybatis和jpa本地启动成功,线上启动失败

暨曾笑
2023-12-01

由于我司整合了用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类排除既可。

 类似资料: