美文网首页
JPA使用自定义ID生成策略+雪花算法

JPA使用自定义ID生成策略+雪花算法

作者: 木木子丶 | 来源:发表于2022-04-07 11:28 被阅读0次

    在我们使用较为方便的jpa时,id生成策略可以使用默认的,例如自增序列,
    但随着我们业务水平扩展,分布式技术成熟的今天,单一的自增已经不是一个较好的策略了,这里我们使用雪花算法代替

    自定义id生成策略

    
    /**
     * @PROJECT_NAME: 五月科技
     * @DESCRIPTION: 自定义主键生成策略
     * @author: 徐子木
     * @DATE: 2022/4/7 11:01 上午
     */
    public class SnowIdGenerator implements IdentifierGenerator {
    
        @Override
        public Serializable generate(SharedSessionContractImplementor sharedSessionContractImplementor, Object o) throws HibernateException {
            return SnowFlakeUtil.snowflakeIdString();
        }
    
    }
    

    定义公共父类,省的以后每个子类都要重复写这些公共参数

    /**
     * @PROJECT_NAME: 五月科技
     * @DESCRIPTION:
     * @author: 徐子木
     * @DATE: 2022/4/7 11:03 上午
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @SuperBuilder(toBuilder = true)
    @MappedSuperclass
    public abstract class BaseEntity {
        @Id
        @GenericGenerator(name = "id",strategy = "com.cloud.zimu.config.SnowIdGenerator")
        @GeneratedValue(generator = "id")
        private String id;
    
        @CreationTimestamp
        private Timestamp createTime;
    
        @UpdateTimestamp
        private Timestamp updateTime;
    
    }
    

    调用save方法,可以看到自定义策略成功

    image.png

    注:不了解雪花算法的可以翻阅我之前的文章

    相关文章

      网友评论

          本文标题:JPA使用自定义ID生成策略+雪花算法

          本文链接:https://www.haomeiwen.com/subject/wcijsrtx.html