在Mybatis-plus中,通过设置@TableId可以让Mybatis-plus自动为我们生成雪花算法的ID号,该ID号是一个长整型数据,非常方便。但是雪花算法的ID号是在Insert执行的时候生成的,我们在Insert执行前是不知道Entity会获得一个什么ID号。
但是在某些情况下,我们想提前获取这个ID,这样可以通过一些计算来生成其他字段的值。
那么我们需要用雪花算法生成一个ID号。是不是还需要另外自己写一个雪花算法生成类呢?
完全不用。因为Mybatis-plus中内置了雪花算法生成功能,我们找出来调用就行了,就是下面这个类:
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
我们可以这样调用:
Long ID=IdWorker.getId(entity);
如果有更高的需求,还可以设置雪花算法的其他参数。
这个类源码如下:
package com.baomidou.mybatisplus.core.toolkit;
import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator;
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
import java.time.LocalDateTime;
import java.time.format.DateTim