You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot启动报entityManagerFactory Bean创建失败解决方案

修复方案

你这个启动报错是4处明确的配置、代码错误叠加导致的,按下面步骤逐个修改即可正常启动,不需要额外加debug参数排查。
核心报错触发原因是Hibernate方言配置写错类名,直接导致JPA上下文初始化失败。

1. 修正Hibernate方言配置

打开application.properties,找到方言配置行,你当前写的类名用逗号替代了点号,还多套了一层双引号,属于语法错误,直接替换为:

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect

补充说明:Spring Boot 2.7.x对接MySQL8时本身可以自动识别方言,不需要手动配置这行。另外配置里的spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false没有实际作用,直接删掉即可。

2. 补全JDBC连接串必要参数

你当前的MySQL连接串缺少时区、SSL等MySQL8驱动强制要求的参数,会导致连接初始化失败,把数据源URL替换为:

spring.datasource.url=jdbc:mysql://localhost:3306/sampledb?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true

修改前先确认:本地MySQL服务正常启动、3306端口未被占用、sampledb数据库已手动创建、root账号密码和配置里的password一致。

3. 修正实体类主键生成逻辑

MySQL不支持SEQUENCE主键生成策略,你实体类里的序列名还是未替换的占位符,属于无效代码,直接把Course类的主键定义部分替换为:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

对应的@SequenceGenerator注解整段删掉即可,MySQL自增主键对应IDENTITY策略,不需要配置序列。

4. 移除多余依赖避免版本冲突

你的pom.xml里手动引入的hibernate-core是多余依赖,spring-boot-starter-data-jpa已经内置了和当前Spring Boot版本完全适配的Hibernate包,手动引入大概率会出现版本不匹配问题,直接把下面这段依赖从pom里删掉:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
</dependency>

所有修改完成后,执行mvn clean compile清空之前的编译缓存,重新启动应用即可正常运行。

内容的提问来源于stack exchange,提问作者Ray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 23:27:35