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

Spring Boot+MySQL启动报错:Table 'schema.users_seq'不存在

解决Spring Boot + MySQL 报错:Table 'schema.users_seq' doesn't exist

问题原因

你使用GenerationType.AUTO作为主键生成策略时,Hibernate在MySQL环境下会默认尝试用序列(SEQUENCE)机制生成主键,但MySQL本身不支持原生序列,因此它会自动创建users_seq表来模拟序列。如果该表未被自动创建(比如未开启自动建表、数据库权限不足等),就会触发这个报错。

解决方案

方案1:改用MySQL原生自增策略(推荐)

直接将主键生成策略改为IDENTITY,该策略会适配MySQL的AUTO_INCREMENT机制,无需依赖序列表:

@Entity
@Table(name = "users") // 注意:原appliesTo属性错误,JPA的@Table需用name指定表名
public class Users {
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) // 修改此处策略
    @Column(name="uid")
    private long id;
    // 其他字段、构造方法及Getter/Setter...
}

方案2:配置Hibernate方言强制使用自增(若坚持用AUTO)

在application.properties或application.yml中指定MySQL对应的Hibernate方言,让Hibernate明确MySQL应使用自增而非序列:

# MySQL 8.x 版本使用该方言
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect

# MySQL 5.x 版本使用该方言
# spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

同时确保开启自动建表(默认开启,若手动关闭需重新开启):

spring.jpa.hibernate.ddl-auto=update

额外修正点

你的@Table注解参数有误,JPA规范中@Table没有appliesTo属性,需改为name来指定数据库表名,否则实体无法正确映射到users表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:40:34