mybatisplus自动生成id避免出现负数
时间: 2023-09-04 19:09:41 浏览: 822
mybatisplus自动生成代
MyBatis-Plus 默认使用的是雪花算法生成 ID,可以保证生成的 ID 具有唯一性。但是,有时候会出现负数的情况,这是因为雪花算法的 workerId 和 datacenterId 的位数不够,导致溢出。解决这个问题的方法有两种:
1. 修改 workerId 和 datacenterId 的位数,使其不会溢出。可以在 MyBatis-Plus 的配置文件中进行配置:
```
mybatis-plus:
global-config:
db-config:
id-type: INPUT
worker-id: 1
data-center-id: 1
max-worker-id: 31
max-data-center-id: 31
```
其中,workerId 和 datacenterId 的位数可以通过 `max-worker-id` 和 `max-data-center-id` 进行设置。
2. 使用其他的 ID 生成算法,如 UUID、雪花算法的改进版等。可以通过实现 `IdentifierGenerator` 接口来实现自定义的 ID 生成算法,在 MyBatis-Plus 的配置文件中进行配置:
```
mybatis-plus:
global-config:
db-config:
id-type: UUID
```
这样就可以使用 UUID 作为主键了。
阅读全文