Spring Boot+Kotlin项目启动报错找不到entityManagerFactory Bean
问题根因
核心问题是手动引入的Hibernate Core 6.1.0.Final与Spring Boot 2.6.2版本存在严重的版本不兼容。
Spring Boot 2.6.x系列官方适配、绑定的Hibernate版本为5.6.x分支,Hibernate 6是Spring Boot 3.0及以上版本才正式支持的大版本,跨大版本手动替换Hibernate核心依赖会直接打断Spring Boot的JPA自动配置流程,导致entityManagerFactory Bean无法正常创建,和数据库类型选择、实体类注解配置、数据源参数配置无关。
修复步骤
- 打开
build.gradle.kts,直接删除手动声明的Hibernate Core 6.1.0.Final依赖,不需要手动指定Hibernate版本,Spring Boot的官方依赖管理插件会自动拉取和当前版本匹配的兼容Hibernate包。 - 检查
application.properties中的JPA配置,确认Hibernate方言配置适配当前版本,可直接参考以下配置(你之前写对的PostgreSQL数据源连接、用户名密码、端口等参数不需要改动):
# JPA基础配置 spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL10Dialect spring.jpa.hibernate.ddl-auto=validate spring.jpa.open-in-view=false # 按需开启SQL打印,不影响核心逻辑 spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true
- 执行
./gradlew clean清理旧构建缓存,刷新Gradle依赖后重新启动应用。 - 如果完成以上操作后仍报错,检查
spring-boot-starter-data-jpa依赖是否被手动添加了传递依赖排除规则,确保Hibernate核心相关的传递依赖没有被误排除。
额外说明
如果确实需要使用Hibernate 6的特性,不能只替换Hibernate核心包,需要将整个Spring Boot版本升级到3.0及以上,同时同步完成Java版本适配、javax包到jakarta包的全量替换、Kotlin版本升级、依赖配置全量调整,改动成本极高,对于待办清单类的Demo项目完全没有必要。
内容的提问来源于stack exchange,提问作者SnickErzIsBack
相关产品推荐
相关产品推荐

