searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

mybatis使用过程中出现主键值变更

2023-07-21 00:38:24
1
0

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即可

0条评论
作者已关闭评论
z****n
3文章数
0粉丝数
z****n
3 文章 | 0 粉丝
z****n
3文章数
0粉丝数
z****n
3 文章 | 0 粉丝
原创

mybatis使用过程中出现主键值变更

2023-07-21 00:38:24
1
0

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即可

文章来自个人专栏
mybatis
1 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0