1. 問題發現
在一次誤刪生產表的情況下,將備份數據解析成bean對象,使用saveBatch時,出現了舊主鍵值沒有了,出現了一堆自動生成的id值
2. 找到問題
舊的id沒有生效,說明主動設置主鍵被忽略了,查看配置文件發現,mybatis采用了自動生成id的策略,
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
#實體掃描,多個package用逗號或者分號分隔
typeAliasesPackage: io.renren.modules.*.entity
global-config:
#數據庫相關配置
db-config:
#主鍵類型 AUTO:"數據庫ID自增", INPUT:"用戶輸入ID", ID_WORKER:"全局唯一ID (數字類型唯一ID)", UUID:"全局唯一ID UUID";
id-type: AUTO
logic-delete-value: -1
logic-not-delete-value: 0
banner: false
#原生配置
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
call-setters-on-nulls: true
jdbc-type-for-null: 'null'mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
#實體掃描,多個package用逗號或者分號分隔
typeAliasesPackage: io.renren.modules.*.entity
global-config:
#數據庫相關配置
db-config:
#主鍵類型 AUTO:"數據庫ID自增", INPUT:"用戶輸入ID", ID_WORKER:"全局唯一ID (數字類型唯一ID)", UUID:"全局唯一ID UUID";
id-type: AUTO
logic-delete-value: -1
logic-not-delete-value: 0
banner: false
#原生配置
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
call-setters-on-nulls: true
jdbc-type-for-null: 'null'
將id-type設置為INPUT即可