如何使用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
相关文章
|
6月前
|
算法
自定义UUID算法
自定义UUID算法
58 0
|
4月前
|
存储 数据库
UUID主键生成策略
【7月更文挑战第9天】在分库分表场景中,自增主键不再适用,面试时应提及这一挑战。主键生成策略包括UUID,虽简单但有两弊端:长度过长且非递增。递增主键能优化存储,避免页分裂导致的性能下降。准备时需了解常见策略、创新方案及优化措施。例如,UUID的非递增性可能导致数据库的页分裂和性能影响。
52 3
|
6月前
|
算法 云计算 索引
生成UUID和自定义UUID算法
生成UUID和自定义UUID算法
413 0
|
6月前
|
算法 Scala 数据库
MyBatisPlus-ASSIGN_ID、ASSIGN_UUID策略、雪花算法及简化配置
MyBatisPlus-ASSIGN_ID、ASSIGN_UUID策略、雪花算法及简化配置
1247 0
|
存储 算法 安全
全局唯一ID(自增ID、UUID、雪花算法)
一、介绍 系统唯一id是我们在设计阶段常常遇到的问题。在复杂的分布式系统中,几乎都需要对大量的数据和消息进行唯一标识。在设计初期,我们需要考虑日后数据量的级别,如果可能会对数据进行分库分表,那么就需要有一个全局唯一id来标识一条数据或记录。生成唯一id的策略有多种,但是每种策略都有它的适用场景、优点以及局限性。
|
算法 NoSQL Oracle
分布式id的生成策略4种方式
分布式id的生成策略4种方式
231 0
分布式id的生成策略4种方式
|
Java 数据库连接 mybatis
mybatis学习(27):获取自增id方式一(在mapper中insert配置节点的属性)
mybatis学习(27):获取自增id方式一(在mapper中insert配置节点的属性)
192 0
mybatis学习(27):获取自增id方式一(在mapper中insert配置节点的属性)
|
C++
MyBatis-Plus - ID_WORKER VS UUID
MyBatis-Plus - ID_WORKER VS UUID
178 0
MyBatis-Plus - ID_WORKER VS UUID
|
分布式计算 算法 Python
Python编程:使用uuid库生成唯一ID
Python编程:使用uuid库生成唯一ID
182 0
|
Java
Java通用方法 -- 唯一识别码(universally unique identifier)(UUID)实现
提供通用唯一识别码(universally unique identifier)(UUID)实现
147 0