当前位置:   article > 正文

重写mybatisPlus自定义ID生成策略

重写mybatisPlus自定义ID生成策略

1.项目中需要引入mybatisplus核心组件

  1. <dependency>
  2. <groupId>com.baomidou</groupId>
  3. <artifactId>mybatis-plus-boot-starter</artifactId>
  4. <version>${mp.version}</version>
  5. </dependency>

2.新建一个类实现IdentifierGenerator,重写id生成策略

  1. import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
  2. import java.util.UUID;
  3. public class CustomUUIDGenerator implements IdentifierGenerator {
  4. @Override
  5. public boolean assignId(Object idValue) {
  6. return IdentifierGenerator.super.assignId(idValue);
  7. }
  8. //重写雪花id算法
  9. @Override
  10. public Number nextId(Object entity) {
  11. return SequenceUtil.makeId();
  12. }
  13. //重写uuid算法,不过滤-
  14. @Override
  15. public String nextUUID(Object entity) {
  16. return UUID.randomUUID().toString();
  17. }
  18. }

3.在mybatisplus配置文件中注入bean

  1. @Configuration
  2. public class MybatisPlusConfig {
  3. @Bean
  4. public IdentifierGenerator identifierGenerator() {
  5. return new CustomUUIDGenerator();
  6. }
  7. }

4.在实体bean映射类中使用需要在ID字段上加入注解

ASSIGN_UUID即为重写后生成的UUID,原生成的uuid为32位,没有-连接符,id需要使用String类型

@TableId(value = "id", type = IdType.ASSIGN_UUID)
ASSIGN_ID即为重写后生成的雪花id,值为Long类型
@TableId(value = "workspaceid", type = IdType.ASSIGN_ID)

此方法为重写覆盖原生mybatisplus,所以不影响其他地方,id依然会在insert时自动生成.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/697903
推荐阅读
相关标签
  

闽ICP备14008679号