mybatisplus insert dto未指定id时会如何

针对 MyBatis-Plus 3.4.1 版本,结论是:在默认配置下,如果未指定 ID 值,insert 操作会自动生成 ID。

3.4.1 版本下的具体行为

你提到的 3.4.1 属于 3.3.0 之后的版本,主键策略已经过调整:

  • 默认策略是雪花算法 :如果不做任何配置,@TableId 的 type 默认为 IdType.NONE,它会跟随全局配置。而全局默认的 ID 生成策略就是雪花算法 (对应 ASSIGN_ID),会自动生成一个 Long 或 String 类型的唯一 ID。

  • 自动回填 :使用该策略时,MyBatis-Plus 在插入前生成 ID,并会自动将其回填到你的实体对象中,插入后你可以直接通过 getId() 获取。

需要注意的版本特性

3.4.x 版本增加了一个关于主键类型的警告 (不影响运行):如果实体类的主键字段使用了 long 或 int 等基本数据类型 ,启动时会提示建议改为包装类(Long / Integer)。这是因为基本类型默认值为 0,在自增策略下可能被误认为是你手动指定的值,而包装类的 null 能更明确地表示"由框架生成"。

相关推荐
学长毕设34 分钟前
基于SpringBoot的游乐园管理系统-附源码
java·spring boot·后端
码途行者1 小时前
网站的SQL 注入:从攻击原理到防御措施
开发语言·sql·php
SimonKing1 小时前
震惊:怎么回事,opencode一轮对话耗尽免费额度
java·后端·程序员
装不满的克莱因瓶1 小时前
【SpringAI Alibaba】ReactAgent响应SSE实时流式传输案例实战
java·人工智能·ai·sse·springai
杨凯凡1 小时前
Spring Boot 文件上传怎么做才安全?流式落盘、路径校验与数据库一致性实战
java·spring boot·文件上传·后端安全·数据库一致性
旖旎夜光1 小时前
【C++ 基础入门】C++ 多态(中):虚函数表、多态原理与动静绑定
开发语言·c++·笔记·学习
这个昵称不容易2 小时前
旅游管理系统的设计与实现(SpringBoot + MySQL + Vue 前后端分离)
java·springboot·毕设
Rain的Java大神之路2 小时前
LeetCode 37 解数独面试攻略:回溯 + 位掩码 + MRV,从暴力到毫秒级求解
java·后端·leetcode
你看我名字2 小时前
产品参数昨天还对,今天已过期:数眼智能与大模型应用如何做资料版本校验
开发语言·架构
老秦包你会2 小时前
计算机网络第二课 ----Socket(套接字)编程预备
开发语言·计算机网络·php