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

Spring Boot中如何实现MySQL实体类ID自增?

Spring Boot中MySQL实体ID自增配置方法

要实现MySQL对应的Spring Boot实体ID自增,只需修改实体类中id字段的注解配置,具体步骤如下:

1. 添加必要注解

在id字段上补充两个关键注解:

  • @GeneratedValue(strategy = GenerationType.IDENTITY):指定主键生成策略为数据库自增,对应MySQL的AUTO_INCREMENT,由数据库自动生成主键值。
  • @Column(name = "id", nullable = false, updatable = false):明确字段名,设置字段不可为空且禁止手动更新,契合自增ID的使用逻辑。

2. 修改后的完整实体类代码

package com.pruebas.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Persona {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", nullable = false, updatable = false)
    private Integer id;
    
    @Column
    private String title;
    
    @Column 
    private String description;
    
    // Getter and setter
    public Integer getId() {
        return id;
    }
    
    // 自增ID无需手动设置,保留setter仅为框架兼容,建议不要主动调用
    public void setId(Integer id) {
        this.id = id;
    }
    
    public String getTitle() {
        return title;
    }
    
    public void setTitle(String title) {
        this.title = title;
    }
    
    public String getDescription() {
        return description;
    }
    
    public void setDescription(String description) {
        this.description = description;
    }
}

3. 数据库表配置说明

  • 手动建表时,需确保id字段设置为AUTO_INCREMENT,示例建表语句:
CREATE TABLE persona (
    id INT PRIMARY KEY AUTO_INCREMENT,
    title VARCHAR(255),
    description TEXT
);
  • 若使用Spring Data JPA自动建表(配置spring.jpa.hibernate.ddl-auto=update或create),Hibernate会根据实体注解自动将id字段设置为AUTO_INCREMENT。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:50:27