mybatis-plus默认生成策略是雪花算法,想改成自定义的id策略,于是查看mybatis官方文档,按照文档步骤也很简单,代码如下:
@Component
public class CustomIdGenerator implements IdentifierGenerator {
@Override
public Long nextId(Object entity) {
//可以将当前传入的class全类名来作为bizKey,或者提取参数来生成bizKey进行分布式Id调用生成.
String bizKey = entity.getClass().getName();
//根据bizKey调用分布式ID生成
long id = ....;
//返回生成的id值即可.
return id;
}
}
只要在nextId方法里面的策略换成自己的id策略即可,但是在项目里面测试了N次都不生效,网上的各种方法试了,没用,于是根据IdentifierGenerator
查找id策略源码,发现始终是默认的策略,很迷惑,然后就查找mybatis-plus版本,3.3.2,是支持自定义id策略的,后来看到mybatis-plus-boot-starter的版本,3.1.0;预感到问题在这,于是mybatis-plus-boot-starter版本也换成3.3.2 ,成功了;由于项目mybatis-plus版本替换是同事完成的,没太在意版本兼容问题,导致这个问题。