主键生成策略
MyBatis-Plus默认实现5种主键生成策略,分别是:
- AUTO,配合数据库设置自增主键,可以实现主键的自动增长,类型为nmber;
- INPUT,由用户输入;
- NONE,不设置,等同于INPUT;
- ASSIGN_ID,只有当用户未输入时,采用雪花算法生成一个适用于分布式环境的全局唯一主键,类型可以是String和number;
- ASSIGN_UUID,只有当用户未输入时,生成一个String类型的主键,但不保证全局唯一;
需要注意的是,ASSIGN_ID
在对应 Java Long 类型生成 19 位数字没问题,但传到前端会丢失精度,所以需要手动配置雪花算法改进版,生成 16 位数字,才不会导致 JS 精度丢失。
@Component
public class CustomerIdGenerator implements IdentifierGenerator {
@Override
public Long nextId(Object entity) {
// 填充自己的Id生成器,
return IdGenerator.generateId();
}
}