背景
項目中往表中插入資料時,需要有實體主鍵,項目使用的是oracle資料,是以不能使用資料自增字段,對于自己新表,可以使用mybatis-plus的預設主鍵,即通過雪花算法得到的19為數字型主鍵,但是由于某些原因,有些曆史遺留的表主鍵長度沒有19位,也不好修改資料庫。
解決辦法
可以通過序列來添加主鍵,主要過程如下:
- 建立oracle序列
- 配置mybatis-plus主鍵政策
/**
* 使用序列生成指定主鍵
*
* @return
*/
@Bean
public OracleKeyGenerator keyGenerator() {
return new OracleKeyGenerator();
}
- 在需要使用主鍵政策的DO對象上面添加注釋
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL1QTN3ETM1cTM5IzMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
- 給主鍵字段加上ID類型
需要注意的,使用這個配置後,就算手動給UserDO設定了ID,也會被序列的ID覆寫