mybatisplus生成负数id
时间: 2023-09-23 16:08:56 浏览: 157
MybatisPlus默认使用雪花算法生成ID,生成的ID是一个64位的long类型数字,其中最高位是符号位,如果ID是负数,则最高位为1,正数则为0。
如果你想要生成正数ID,可以尝试修改MybatisPlus的ID生成策略,比如使用UUID等其他算法来生成ID。具体可以参考MybatisPlus的官方文档,或者在MybatisPlus的配置文件中设置全局主键生成器的类型来自定义ID生成策略。
相关问题
mybatisplus自动生成id避免出现负数
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 作为主键了。
阅读全文