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

Hibernate报错hibernate_sequence表不存在,现有方案无效如何解决

@Entity
@Table(name="person")
public class Person {

@Id
@GeneratedValue(strategy=GenerationType.AUTO) //<----- 也尝试过使用IDENTITY策略
@Column(name="id")
private long pid;

@Column(nullable=false) 
private String name;

@Embedded
private Address address;

// 对应getter、setter方法及构造函数

}

### Address.java嵌入式类代码
```java
@Embeddable
public class Address {
    
    @Column(name="street")
    private String street;

    @Column(name="city")
    private String city;

    @Column(name="zipcode")
    private long zipcode;
    
    // 对应构造函数
}

报错日志

完整报错日志
请帮忙指出我代码或配置中的错误,谢谢。


解决方案

你遇到的hibernate_sequence不存在报错,是方言配置和主键策略适配的问题,按以下步骤修改即可解决:

  1. 修正hibernate.cfg.xml中的方言配置,替换为适配MySQL8的版本:
<!-- 替换原有org.hibernate.dialect.MySQLDialect -->
<property name="dialect">org.hibernate.dialect.MySQL8Dialect</property>

旧版本MySQLDialect默认将GenerationType.AUTO映射为序列生成策略,但MySQL本身不支持序列,才会触发找不到序列表的报错。替换为MySQL8专属方言后,会默认适配MySQL的自增主键逻辑。
2. 明确指定主键生成策略为IDENTITY,避免Hibernate自动适配出现偏差:

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private long pid;
  1. (可选校验)如果person表是提前手动创建的,检查id字段是否已经开启AUTO_INCREMENT属性;如果是通过hbm2ddl.auto=update自动生成表结构,修改配置后重启应用会自动补全自增属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:09:04