Skip to content

Releases: baomidou/mybatis-plus

v3.5.9

23 Oct 15:08
Compare
Choose a tag to compare
  • 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

18 Sep 14:31
Compare
Choose a tag to compare
  • 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

10 Jun 15:19
Compare
Choose a tag to compare
  • 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

08 Apr 15:58
Compare
Choose a tag to compare
  • 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

24 Dec 14:38
Compare
Choose a tag to compare
  • 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

03 Nov 17:14
Compare
Choose a tag to compare
  • fix: 修复Aop增强Mapper层导致的转换错误.

v3.5.4

24 Oct 04:31
Compare
Choose a tag to compare
  • fix: 修复Insert无字段时执行SQL报错.
  • fix: 修复高版本JDK下lambda无法执行IDEA调试.
  • fix: 修复LambdaQuery中select,groupBy,orderBy,orderByAsc,orderByDesc提示的警告,新增对应doXxx方法支持重写(不兼容改动,api方法做了final处理).
  • fix: 修复inject-sql-session-on-mapper-scan无配置提示.
  • fix: 修复@OrderBy搭配@TableId排序字段错误(不兼容改动,com.baomidou.mybatisplus.core.metadata.TableInfo.orderByFields调整了类型).
  • fix: 修复Service中根据主键逻辑删除时类型不匹配导致的错误.
  • fix: 修复分页插件Count与自定义ResultHandler冲突.
  • fix: 修复字段填充处理器可能会出现重入问题
  • feat: 新增自增主键字段是否允许插入控制,可使用方法注入覆盖Insert(boolean ignoreAutoIncrementColumn)或Insert(String name, boolean ignoreAutoIncrementColumn)控制自增主键是否支持写入行为.
  • feat: ActiveRecord模式下deleteById(逻辑删除)方法支持自动填充功能.
  • feat: 内置泛型提取,支持非Spring体系项目使用.
  • feat: BaseMapper新增update(wrapper)更新方法.
  • feat: BaseMapper新增流式查询方法对大数据查询支持.
  • feat: 代码生成器元数据信息公开tableName与columnName字段访问.
  • feat: 新增mybatis-plus-spring-boot3-starter与mybatis-plus-spring-boot3-starter-test支持SpringBoot3.
  • feat: 支持插件缺省注入,当无MybatisPlusInterceptor注入时,支持com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor自动注入.
  • feat: 升级源码Jdk开发版本至Java21.
  • feat: 升级gradle-wrapper至8.4-rc-1.
  • feat: 升级kotlin-gradle-plugin至1.9.20-Beta.
  • feat: 升级SpringBoot2.x版本至2.7.15.
  • feat: 升级lombok至1.18.30.
  • opt: mybatis-plus-extension中mybatis-spring依赖修改为可选依赖(不兼容改动,如果项目在非spring或非springBoot下使用到了请手动添加依赖).
  • opt: spring-boot-starter减少无用的配置提示(不兼容改动,调整了com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties.configuration类型).
  • opt: 字段填充处理器提取去除固定参数提取,支持更宽松的mapper方法参数提取填充处理,
  • opt: 去除com.baomidou.mybatisplus.core.toolkit.ReflectionKit.setAccessible方法调用,防止高版本Jdk移除
  • opt: 调整selectOne方法(配合流式处理,最多提取两行数据,日志不再打印总记录数).
  • opt: 优化selectObjs方法返回值,减少类型强制转换.
  • opt: 通用Service支持多SqlSessionFactory注入.
  • opt: 优化TableInfo.newInstance创建实例方法.
  • opt: 去除多余的@SuppressWarnings("serial")

v3.5.3.2

09 Aug 02:21
Compare
Choose a tag to compare

feat: 升级mybatis至3.5.13,mybatis-spring至2.1.1

feat: jsqlparser提供统一解析类,可配置解析函数,并加入缓存选项

feat: 增加Sequence初始化debug日志

feat: 参数填充器支持多参数填充

feat: BaseMapper新增selectMaps(page, wrapper)与selectList(page, wrapper)方法

feat: 乐观锁字段支持 java.time.Instant

feat: wrapper#apply支持配置mapping比如column={0,javaType=int,jdbcType=NUMERIC,typeHandler=xxx.xxx.MyTypeHandler}

feat: 调整 QueryWrapper 需要主动开启检查 SQL 注入过滤(移除掉wrapper的orderby的sql过滤功能)

feat: 新增星瑞格数据库支持

feat: updateWrapper#setSql方法支持动态入参参考wrapper#apply方法

feat: 自动 SQL 维护 DDL 支持 SQL 执行存储过程

perf: ktWrapper加强泛型限制

fix: 修复在选择springdoc文档注释时entity描述异常

fix: 在主键的IdType为AUTO的情况下,Table#getAllInsertSqlColumnMaybeIf("xx.")所生成sql错误问题

fix: 租户插件支持update set subSelect的情况

fix: 修复高版本Jdk提示非法反射警告(Illegal reflective access by com.baomidou.mybatisplus.core.toolkit.SetAccessibleAction)

fix: 修复高版本Jdk插件动态代理反射错误 (Unable to make field protected java.lang.reflect.InvocationHandler java.lang.reflect.Proxy.h accessible)

fix: 修复路径替换将原有的“.”替换成了文件分隔符“/”

fix: 修复Beetl模板引擎无法生成注释

fix: 修复Types.DOUBLE类型无法映射

fix: 修复转换父类公共字段报错

fix: 修复生成器无法通过cfg.取值

fix: 修复单元测试下MockBean时事务回滚失败

fix: 修复Warpper类nonEmptyOfWhere方法命名不规范,导致Ognl未正确缓存带来的执行开销

fix: ClickHouseQuery类的tableComment()方法返回表注释字段为comment

fix: 修复在选择springdoc文档注释时entity描述异常问题

fix: Table#getAllInsertSqlColumnMaybeIf("xx.")下的sql生成错误问题

fix: Db类增加根据实体不为空的字段条件查询方法重载

fix: 生成器对于Kotlin的Entity文件的superEntityClass的错误

fix: 修复springdoc freemarker模式下 表注释取值取不到

opt: 增强参数填充处理器,防止因参数名称与填充名称一致类型不匹配导致转换错误

opt: 优化方法注入,去除SelectPage,SelectMapsPage,SelectByMap,DeleteByMap注入

opt: 减少MappedStatement堆内存占用

opt: 解决PluginUtils重复获取元数据带来的性能消耗

opt: 注入方法去除多余的换行符

opt: 去除SqlRunner持有的sqlSessionFactory变量

opt: 解决Sequence初始化多次问题(自定义情况下可不创建默认主键生成器)

opt: 优化 SqlHelper#getMapper 返回泛型

opt: 去除SqlRunner持有的sqlSessionFactory变量

docs: 修正DdlHelper注释错误

v3.5.3.1

06 Jan 05:56
Compare
Choose a tag to compare

紧急修改 lambdaQuery()...One() 实体不存在导致的 BUG

v3.5.3

28 Dec 09:47
Compare
Choose a tag to compare

多租户插件:多表join表名必需起别名,否则追加的过滤条件不带前缀
InterceptorIgnore 不能过滤 selectKey 的问题
分页新增informix数据库支持
分页新增优炫数据库支持
分页新增TDengine数据库支持
分页新增亚马逊redshift数据库支持
支持spring-boot 2.7以上版本
雪花id新增反解时间戳方法Sequence#parseIdTimestamp
BaseMapper.selectCount生成语句加入中AS total
修复IllegalSQLInnerInterceptor类ClassCastException异常,并优化日志
移除注解OrderBy的过时属性isDesc
移除TableInfo过时方法
加入JoinTableInfoInitHandler类参与TableInfo初始化
修复StringUtils.sqlInjectionReplaceBlank方法过滤sql不全,可能会导致sql注入的情况
增加IService.lambdaQuery(entity)支持,写法更便捷
新增数据变更记录(数据审计)插件DataChangeRecorderInnerInterceptor
新增查询条件方法 notLikeLeft 和 notLikeRight
数据权限多表解析部分处理优化
允许子类重写 orderBy 基础方法 gitee issues/I61F51
新增Db类,调整 SimpleQuery 类
新增脚本自动维护功能
新增支持手动拦截器忽略策略,例如 InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
支持 PG 数据字段大写 ID 自增 fixed issues/I4T0YJ
代码生成器重构完成,合并回 MP 核心代码库
代码生成器增加是否生成service接口的开关