Releases: baomidou/mybatis-plus
Releases · baomidou/mybatis-plus
v3.5.12
- fix: 修复批量操作异步执行首次可能的出现
NoSuchElementException
错误 - fix: 修复默认
SQL
解析线程池在JVM
退出关闭导致的任务拒绝 - fix: 修复
entity.java.btl
生成toString
方法样式错误 - fix: 修复
entity.java.ftl
模板类注释与导包缺少换行 - opt: 重构
SqlRunner
执行SQL
语句 (动态传参,不再根据参数值生成执行SQL
) - opt: 增强
SqlRunner
执行(支持单参数使用Map
({key}),List
({index}),JavaBean
({property})获取值) - opt: 改进
MybatisUtils
对自SqlSessionFactory
的提取(支持自定义SqlSessionTemplate
子类) - opt: 自动识别数据库支持
TDengine
数据库websocket
连接 - opt: 支持
Db
工具类对多数据源的支持 - opt: 优化
MapperProxy
属性访问 - opt:
CompatibleSet
接口增加getBean
与getProxyTargetObject
方法 - opt:
CompatibleSet
与CompatibleHelper
调整至com.baomidou.mybatisplus.core.spi
包之中 - opt: 支持手动指定
CompatibleSet
实现 - opt: 代码生成器处理驱动返回索引信息
null
- opt: 代码生成器处理
PRIMARY_KEY_
为开头的主键索引情况 - opt: 去除
entity.kt.btl
模板@Override
注解 - opt: 解决
serviceImpl.java.ej
生成格式不统一 - opt: 去除
mapper.java.ftl
多余的换行生成 - opt: 去除
entity.kt.vm
,entity.kt.ej
,entity.kt.btl
导包结束分隔符 - opt: 去除
controller.java.ej
,controller.java.vm
多余的换行 - opt: 去除
entity.kt.btl
生成属性多余的空格 - opt: 统一
entity.java.btl
,entity.java.ej
,entity.java.ftl
,entity.java.vm
生成的toString
方法样式
v3.5.11
- fix: 修复代码生成器链式模型非
lombok
下生成了@Accessors
注解 - fix: 修复主键使用
UUID
执行批量删除错 - fix: 修复
Kotlin
使用select(predicate)
方法错误 - fix: 修复
AbstractCaffeineJsqlParseCache
异步产生的错误 - fix: 修复动态SQL解析包含SQL注释(--或#)导致的合并错误 (动态脚本语句不再处理换行,如果需要去除换行请自行处理)
- fix: 修复
DataChangeRecorderInnerInterceptor
数据比较出现强转异常 - fix: 修复
IllegalSQLInnerInterceptor
拦截插件获取catalog
与schema
错误 - fix: 修复动态表解析
create table if not exists
获取表名错误 - fix: 修复动态表解析
create [type] index
获取表名错误 - feat: 新增
DynamicTableNameJsqlParserInnerInterceptor
基于JsqlParser
动态表处理 - feat: 支持
DdlScript
自定义脚本运行器参数 - feat: 支持
DdlHelper
自定义脚本运行器参数 - feat: 支持
DdlApplicationRunner
参数配置(脚本错误处理,自定义ScriptRunner
,多处理器执行异常是否中断) - feat: 支持
BaseMultiTableInnerInterceptor
指定追加条件模式 (默认条件追加至末尾,仅作用于select
,delete
,update
) - feat: 支持生成器
Entity
指定serialVersionUID
添加@Serial
注解 - feat: 支持生成器
Entity
注解(字段,类注解)自定义处理 - feat: 支持生成器
Entity
导包自定义处理 - feat: 支持
崖山
数据库 - feat: 支持
Hive2
分页 - feat: 升级
Gradle
至8.10 - feat: 支持
DdlHelper
执行自定义异常处理 - opt: 调整
DynamicTableNameInnerInterceptor
表处理逻辑并保证hook
运行 - opt: 调整
DdlScript
类方法实现(分离DDL版本记录,优化执行方法) - opt: 调整
DbType#GAUSS
数据库名为gauss
- opt: 调整
JsqlParserGlobal
解析线程池指定 - opt: 移除过时的
FieldStrategy.IGNORED
- opt: 移除过时的
GlobalConfig.DbConfig#selectStrategy
- opt: 移除过时的
MybatisSqlSessionFactoryBean#typeEnumsPackage
- opt: 优化
DdlHelper
资源加载(不再依赖Spring
或者其他实现) - opt: 去除
DdlHelper
中getScriptRunner
方法指定的字符集编码 - doc: 修正
DdlHelper
中注释错误
由于jsqlParser
5.0版本与5.1版本升级不兼容性不是很大,计划后期移除mybatis-plus-jsqlparser-5.0
支持模块。
多版本支持相对来说比较麻烦,后期只维护mybatis-plus-jsqlparser-4.9
与 mybatis-plus-jsqlparser
(保持最新版跟进,直到再提升jdk)
v3.5.10.1
- fix: 修复动态节点处理错误
v3.5.10
- fix: 修复字段有
TableField
注解但未指定value
值下全局columnFormat
未生效问题 - fix: 修复enjoy模板生成kotlin代码报错
- fix: 修复enjoy模板生成字符串代码报错
- fix: 修复springdoc生成注解未转义双引号
- fix: 修复数据变动插件更新无主键报错
- fix: 修复多表解析processJoins解析表出现越界
- feat: TableName注解新增
properties
属性 - feat: 支持@InterceptorIgnore注解在default方法上
- feat: 适配jsqlparser5.1版本(5.0兼容版本请使用
mybatis-plus-jsqlparser-5.0
) - feat: 提供
InterceptorIgnoreHelper.execute
模板执行方法处理插件跳过策略(防止手动使用handle方法出现未清理线程资源造成的错误) - feat: 代码生成器全局package配置属性支持自定义模板信息获取
- feat: 代码生成器新增表索引信息获取
- feat: 代码生成器提供
Mapper.Builder.generateMapperMethodHandler
处理器基于索引生成索引方法 - feat: 代码生成器Entity支持自定义Class注解和字段注解生成
- feat: 代码生成器Entity支持lombok模式指定生成类注解
- feat: 代码生成器Entity支持ToString
(Entity.Builder.toString(boolean))
方法控制生成 (默认生成,lombok模式下将会生成@ToString
,低版本下lombok不生成,属于不兼容改动) - feat: 代码生成器Entity支持字段文档注释(
Entity.Builder.fieldUseJavaDoc(boolean)
)控制生成 (默认生成,低版本下,使用swagger或springdoc不会生成字段文档注释,属于不兼容改动) - feat: 重写动态语句生成(生成执行SQL将不再包含\n换行符)
- feat: 安全加密处理器密钥获取支持环境变量与系统属性传入
- feat: 升级mybatis至3.5.19
- feat: 升级springboot至3.4.1
- feat: 升级kotlin至2.1.0
- 实用性低,检查语法不完善,计划移除IllegalSQLInnerInterceptor插件
- 功能缺陷较多,计划移除DataChangeRecorderInnerInterceptor插件
v3.5.9
- opt: 优化代码生成器支持可视化配置生成能力
- opt: 解耦扩展包不再强制依赖 spring 开发框架
- opt: 拆分jsqlparser支持模块,提供mybatis-plus-jsqlparser(支持最新jsqlparser)与mybatis-plus-jsqlparser-4.9模块, 默认不携带,升级后需要自行引入.
- feat: 重构 service 模块抽象为 CrudRepository 不再建议使用 IService 避免业务层数据混乱
- feat: 新增 solon 启动插件支持
- feat: 升级SpringBoot3.3.4
- feat: 升级velocity2.4
v3.5.8
- fix: 解决optimizeJoinOfCountSql反序列化不支持问题
- fix: 解决Db工具类批量操作使用rewriteBatchedStatements=true返回值不准确
- fix: 修复逻辑删除填充与乐观锁冲突
- fix: 修复IllegalSQLInnerInterceptor分析嵌套count语句错误
- fix: 升级jsqlParser5.0 解决 for update 语句错误
- fix: 修复处自增自减负数情况导致jsqlParser解析优化错误
- fix: 修复removeMapper缓存清理不完全
- fix: 修复SqlServerQuery查询表注释乱码
- opt: 完善函数注入校验逻辑
- opt: Page属性访问调整为private,重写toString方法
- opt: 主键生成策略(uuid)不支持的类型打印警告日志
- opt: MybatisPlusException转化为PersistenceException子类
- feat: 增加deleteByIds空集合处理
- feat: 重命名selectBatchIds方法为selectByIds
- feat: 支持tableName与schema属性占位符配
- feat: 代码生成器增加对虚拟列的属性获取
- feat: chain wrapper to lambda chain wrapper #6314
- feat: 代码生成器增加手动指定数据库驱动兼容不能自动注册的驱动实现
- feat: 升级kotlin2.0.0
- feat: 升级SpringBoot3.3.2
- feat: 升级fastjson2.0.52
- feat: 升级mybatis-spring3.0.4
- feat: 升级spring-cloud-commons4.1.4
- feat: 部分支持依赖升级更新
- feat: 支持GoldenDB数据库
- feat: 支持Duckdb数据库
- feat: 支持Derby数据库
- feat: 支持Vastbase数据库
v3.5.7
- fix: 修复动态表名处理 update ignore 错误
- fix: 修复SQLServer2005分页处理空格错误
- fix: 修复多租户查询出现问题
- fix: 修正非通用泛型情况下序列化json减少强转
- fix: 修复代码生成器禁用模板失效
- fix: 修复分页count优化distinct搭配orderBy处理错误
- fix: 修复达梦数据库生成代码错误
- fix: 修复租户插件特殊exists语句会失效
- fix: 修复sqlite数据库ddl_history错误导致无法创建表
- fix: 修复DataChangeRecorderInnerInterceptor在Insert时配置忽略无效
- fix: 修复代码生成器处理不标准的JdbcType导致空指针错误
- feat: BaseMapper新增批量操作与InsertOrUpdate方法
- feat: BaseMapper新增批量操作方法返回值List
- feat: BaseMapper方法逻辑删除默认支持填充
- feat: 调整Service层逻辑删除填充逻辑处理
- feat: 重构批量删除参数填充处理逻辑.
- feat: 自增自减处理BigDecimal
- feat: 新增雪花ID配置(支持手动分配workerId与datacenterId或指定网卡信息自动获取方式)
- feat: 重构ServiceImpl泛型参数提取
- feat: 修改AES密钥随机性生成
- feat: UpdateWrapper增加checkSqlInjection方法
- feat: 调整DDL脚本自动装配逻辑(当无实现时或无mybatis-plus-extension模块时不注入DDL运行bean)
- feat: 注入方法deleteBatchIds重命名deleteByIds
- feat: SpringBoot升级至2.7.18和3.2.6
- feat: 升级kotlin至1.9.24
- feat: 升级lombok至1.18.32
v3.5.6
- fix: 修复通用Service多层代理引发的错误
- fix: 修复Json类型处理器反序列化泛型丢失原始类型
- fix: 修复填充器处理器基本类型数组出现强制错误
- fix: 修复上版本移除掉Page方法保留至PageDto类之中
- fix: 修复IllegalSQLInnerInterceptor未处理Parenthesis
- fix: 修复IllegalSQLInnerInterceptor表名或字段名包裹导致无法获取索引信息和索引字段校验问题
- fix: 修复KtUpdateChainWrapper调用setSql的时候params没有展开
- fix: 修复useGeneratedShortKey配置失效
- fix: 修复DataChangeRecorderInnerInterceptor一系列问题
- feat: 去除sqlFirst与sqlComment转义(如有需要转义操作,请手动调用转义后传入)
- feat: ServiceImpl修改为抽象类,防止错误直接实例化
- feat: 重构代码生成器TemplateConfig配置,模板禁用与路径配置更改至对应具体实现之上
- feat: 支持组合注解
- feat: 新增 LambdaUpdateWrapper 字段自增 setIncrBy 自减 setDecrBy 方法
- feat: 获取注入方法时传递org.apache.ibatis.session.Configuration
- feat: 新增自增主键兼容配置开关(mybatis-plus.global-config.db-config.insert-ignore-auto-increment-column 默认false,开启INSERT语句无视主键字段生成)
- feat: 新增参数填充器跳过方式(基于MappedStatement#id)
- feat: 新增SQLite的DDL自动维护功
- feat: 新增eqSql方法
- feat: 新增SQL解析线程池
- feat: 增加雪花ID生成器初始化日志打印(默认超过5秒打印警告日志)
- feat: 升级mybatis至3.5.16
- feat: 升级spring-cloud-commons
- feat: 升级jsqlparser至4.9
- test: Github增加CI
- doc: 增加update(Wrapper)相关api无法自动填充注释
v3.5.5
- fix: 修复配置databaseId失效
- fix: 修复自增主键忽略注入错误忽略非自增主键注入问题
- fix: 修复ChainWrapper模式下GroupBy生成多的逗
- fix: 修复selectOne缓存问题
- fix: 修复数据权限多表支持在某些场景下失效问题
- fix: 修复生成器mysql类型转换器point转换错误
- fix: 修复kotlin下无法使用父类属性操作
- fix: 修复自动注入DdlApplicationRunner返回null导致的高版本springboot启动错误
- fix: 修复生成器代码提示的RuntimeUtils安全性漏洞问题
- feat: 新增fastjson2支持
- feat: 升级gradle-wrapper至8.4
- feat: 升级kotlin-gradle-plugin至1.9.21
- feat: 升级mybatis至3.5.15
- feat: 升级lombok至1.18.30
- feat: 升级spring-boot3至3.2.0
- feat: 升级spring-boot2版本mybatis-spring至2.1.2
- feat: 升级spring-boot3版本mybatis-spring至3.0.3
- feat: 移除通用service中saveOrUpdate的事务
- feat: 支持Trino,Presto,GBase8s-pg,SUNDB数据库
v3.5.4.1
- fix: 修复Aop增强Mapper层导致的转换错误.