MyBatis-Plus主键生成策略

231 阅读1分钟

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();
    }
}