zoukankan      html  css  js  c++  java
  • 解决mybatisplus saveBatch 或者save 无法插入主键问题

    解决mybatisplus saveBatch 或者save 无法插入主键问题


    通过跟踪源码后得出结论,由于插入的表的主键不是自增的,而是手动赋值的,所以在调用saveBatch 执行的sql语句是没有主键字段的(项目启动后mybatis 会对DynamicSqlSource 中的rootSqlNode对象赋值,里面就定了insert 插入的字段,默认是没有主键字段的 ),所以在设置实体类的主键字段@TableId(value = “xxx”,type = IdType.INPUT)即可,

    完整实体类例子:

    package com.common.model;
    

    import com.baomidou.mybatisplus.annotation.IdType;
    import com.baomidou.mybatisplus.annotation.TableName;
    import com.baomidou.mybatisplus.annotation.TableId;
    import com.baomidou.mybatisplus.annotation.TableField;
    import lombok.Data;

    import java.io.Serializable;

    @Data
    @TableName("sys_role_menu")
    public class SysRoleMenu implements Serializable {

    private static final long serialVersionUID = 1L;
    
    @TableId(value = "role_id",type = IdType.INPUT) //type = IdType.INPUT,没有的话无法插入主键
    private Long roleId;
    
    @TableField("menu_id")
    private Long menuId;
    
    
    
    
    @Override
    public String toString() {
        return "SysRoleMenu{" +
        ", roleId=" + roleId +
        ", menuId=" + menuId +
        "}";
    }
    

    }

             原文地址:https://blog.csdn.net/zw521cx/article/details/99707298                       </div>
  • 相关阅读:
    C# 开发Chrome内核浏览器(WebKit.net)
    SQL 存储过程语句拼接愁人的时间类型
    Linux简介
    揭秘Node.js深受欢迎的原因
    6个强大的AngularJS扩展应用
    ElasticSearch NEST
    web中的各种打印方案
    配置问题总结
    leetcode -day29 Binary Tree Inorder Traversal &amp; Restore IP Addresses
    HBase高速导入数据--BulkLoad
  • 原文地址:https://www.cnblogs.com/jpfss/p/12095339.html
Copyright © 2011-2022 走看看