如何使用JPA的UUID主键生成策略

简介: 这篇文章只写给主键用uuid并且用jpa的小伙伴。1. 数据实体类@Entity@Table(name = "ip_user")@GenericGenerator(name = "jpa-uuid", strategy = "uuid")...

这篇文章只写给主键用uuid并且用jpa的小伙伴。

1. 数据实体类

@Entity
@Table(name = "ip_user")
@GenericGenerator(name = "jpa-uuid", strategy = "uuid")
public class User  implements Serializable {
    @Id
    @GeneratedValue(generator = "jpa-uuid")
    @Column(length = 32)
    private String userId;
    ...
}

注意@GenericGenerator(name = "jpa-uuid", strategy = "uuid")@GeneratedValue(generator = "jpa-uuid") 两个注解是生成策略核心注解。

2. 数据库字段

img_322ab2773a67218e44cae3497886a6eb.png

3. 执行save方法后

不需要给user.id字段设置值,jpa会自动生成uuid并作为它的主键添加到表中。

img_dd4ae4bf322e92b7020bcf27e7271980.png
相关文章
|
7月前
|
算法
自定义UUID算法
自定义UUID算法
66 0
|
5月前
|
存储 数据库
UUID主键生成策略
【7月更文挑战第9天】在分库分表场景中,自增主键不再适用,面试时应提及这一挑战。主键生成策略包括UUID,虽简单但有两弊端:长度过长且非递增。递增主键能优化存储,避免页分裂导致的性能下降。准备时需了解常见策略、创新方案及优化措施。例如,UUID的非递增性可能导致数据库的页分裂和性能影响。
63 3
|
7月前
|
算法 云计算 索引
生成UUID和自定义UUID算法
生成UUID和自定义UUID算法
468 0
|
7月前
|
算法 Scala 数据库
MyBatisPlus-ASSIGN_ID、ASSIGN_UUID策略、雪花算法及简化配置
MyBatisPlus-ASSIGN_ID、ASSIGN_UUID策略、雪花算法及简化配置
1407 0
注解支持@Alias同步值
注解支持@Alias同步值
100 0
|
Java 数据库连接 mybatis
mybatis学习(27):获取自增id方式一(在mapper中insert配置节点的属性)
mybatis学习(27):获取自增id方式一(在mapper中insert配置节点的属性)
199 0
mybatis学习(27):获取自增id方式一(在mapper中insert配置节点的属性)
|
C++
MyBatis-Plus - ID_WORKER VS UUID
MyBatis-Plus - ID_WORKER VS UUID
187 0
MyBatis-Plus - ID_WORKER VS UUID
|
分布式计算 算法 Python
Python编程:使用uuid库生成唯一ID
Python编程:使用uuid库生成唯一ID
194 0
|
Java
Java通用方法 -- 唯一识别码(universally unique identifier)(UUID)实现
提供通用唯一识别码(universally unique identifier)(UUID)实现
153 0
|
Java 开发者
UUID 类|学习笔记
快速学习 UUID 类
131 1