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

如何在Spring Boot 3.0 Cassandra应用中实现UUID自动生成

Spring Data Cassandra实现UUID自动生成的注解方式

针对你的环境(Java 19、Spring Boot 3.0、spring-data-cassandra依赖),确实存在类似JPA @GeneratedValue的注解方式来自动生成UUID主键,以下是两种可行方案:

方案一:使用@PrimaryKeyColumn指定生成策略

直接在主键字段上使用@PrimaryKeyColumn注解,配置分区键类型并指定UUID生成器,插入时会自动生成UUID值:

import org.springframework.data.cassandra.core.mapping.PrimaryKeyColumn;
import org.springframework.data.cassandra.core.mapping.PrimaryKeyType;
import org.springframework.data.cassandra.core.mapping.UUIDGenerator;
import org.springframework.data.cassandra.core.mapping.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.UUID;

@Table
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Player {
    @PrimaryKeyColumn(name = "id", type = PrimaryKeyType.PARTITIONED, generatorType = UUIDGenerator.class)
    private UUID id;
}

方案二:使用@GeneratedValue注解

Spring Data Cassandra提供了专属的@GeneratedValue注解(注意与JPA的注解包不同),配合@PrimaryKey使用即可实现自动生成:

import org.springframework.data.cassandra.core.mapping.GeneratedValue;
import org.springframework.data.cassandra.core.mapping.PrimaryKey;
import org.springframework.data.cassandra.core.mapping.Table;
import org.springframework.data.cassandra.core.mapping.UUIDGenerator;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.UUID;

@Table
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Player {
    @PrimaryKey
    @GeneratedValue(generator = UUIDGenerator.class)
    private UUID id;
}

注意事项

  • 上述注解均来自org.springframework.data.cassandra.core.mapping包,不要导入JPA的同名注解;
  • 两种方案在Spring Data Cassandra 3.x(适配Spring Boot 3.0)版本下均可正常工作,插入实体时框架会自动为id字段生成UUID,无需手动赋值。

内容的提问来源于stack exchange,提问作者Prafulla Kumar Sahu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 18:56:01