mybatis-flex v1.2.8 20230522: 新增:新增 select id,(select...) from 的支持 优化:Solon 插件增加 RowMapperInvoker 注入和 FlexGlobalConfig 可事件扩展的支持,感谢 @西东 优化:分页的 count 查询默认去掉 left join 和 order by 等 优化:APT 的 ALL_COLUMNS 修改 table.* 文档:添加 hint 的相关文档 文档:优化 mybatis-flex-solon-plugin 的使用文档 文档:优化 queryWrapper 的相关文档 mybatis-flex v1.2.7 20230520: 新增:添加 solon 关于 ServiceImpl 的实现 新增:left join 等 join 查询添加 as(lambda) 的支持 优化:优化 EnumWrapper.java 使之具有更高的性能 优化:迁移 IService 到 core 目录 优化:重命名 Db.updateBatchEntity 为 Db.updateEntitiesBatch 修复:逻辑删除设置 bool 类型在 postgresql 下出错的问题 文档:添加批量操作的相关文档说明 文档:添加关联查询的相关文档 mybatis-flex v1.2.6 20230518: 新增:IService 添加 updateBatch 方法,感谢 @Saoforest 优化:findById 默认返回 isLarge 的字段 #I73SJY 优化:WrapperUtil.getValues() 并直接读取枚举内容 修复:ClassUtil 修复无法正确读取 JDK 动态代理超类问题,感谢 @Saoforest 修复:批量执行每一个批次会少 1 条数据的问题,感谢 @笨小孩 文档:添加数据权限的相关文档 mybatis-flex v1.2.5 20230517: 新增:Db.executeBatch 方法,用于批量操作 新增:Db 工具类添加基于 Entity 的 updateBatch 方法,感谢 @黄沐鸿 新增:KeyGenerators.java 方便进行主键生成策略配置 新增:APT 的 mybatis-flex.properties 文件添加使用 ClassLoader 读取,方便读取 jar 的内容,感谢 @XiaoLin 新增:QueryWrapper 新增 hash join 的支持 新增:QueryWrapper 新增 sql hint 的支持 优化:添加 configuration-processor,实现 yaml 配置自动提示,感谢 @tan90 修复:v1.2.4 新增的 paginateAs 异常问题 #I73BP6 修复:v1.2.4 版本造成的 Db.paginate 出错的问题 文档:优化 id 主键生成器的相关文档 mybatis-flex v1.2.4 20230515: 新增:Db.updateBatch() 方法,用于批量修改或者插入等场景 新增:通过雪花算法生成数据库主键,内置雪花算法,感谢 @王帅 新增:QueryCondition 可以直接传入枚举变量,自动读取 @EnumValue 新增:代码生成器添加 Service、ServiceImpl、Controller 的生成功能,感谢 @王帅 新增:Db 和 BaseMapper 添加 selectObject 和 selectObjectList 等方法 新增:BaseMapper 添加 selectOneByQueryAs 等方法,方便在 left join 等场景直接转换为 dto vo 等; 优化:不变属性添加 final 关键字,感谢 @庄佳彬 优化:修改拼写错误,processer->processor, 感谢 @庄佳彬 优化:Page.of() 方法 优化:为 IService.java 添加常用的方法 优化:修改 SqlUtil.retBool 为 SqlUtil.toBool 修复:orderBy 参数里传入 null 或者 空值,就会抛出异常的问题 #23 文档:优化 mybatis-flex.com 的目录结构 文档:新增内置主键生成器说明文档,感谢 @王帅 文档:修正数据脱敏中的一些描述错误 文档:IService 文档添加代码示例 文档:优化 "部分字段更新" 的相关文档 文档:更新代码生成器的相关文档,感谢 @王帅 文档:添加关于 BaseMapper 进行关联查询的相关文档 文档:添加在 Spring 的场景下使用 @Transactional 注解的注意事项 mybatis-flex v1.2.3 20230511: 新增:MaskManager 添加 withoutMask 模板方法,感谢 @pengpeng 新增:TenantManager 添加 withoutTenantCondition 模板方法,感谢 @pengpeng 新增:代码生成器添加 GlobalConfig.others 属性,方便自定义 generator 的配置 修复:v1.2.2 使用 @Transactional 出现的 Can't call commit 的问题 #I71X6X 文档:纠正错别字 "事物" 为 "事务" 文档:更新代码生成器的相关文档 mybatis-flex v1.2.2 20230510: 新增:增强 Service 及其实现类,感谢 @王帅 修复:where子句无任何符合的条件时,逻辑删除字段处理错误 #I70OIA 修复:在使用事务的情况下,无法切换数据源的问题 #I70QWU 修复:Entity 有配置 typeHandler 时,通过 RowUtil.toEntity 转换异常的问题 #I70XGX 文档:代码生成器添加生成其他产物的相关文档 文档:新增顶级 Service 接口说明文档,感谢 @王帅 文档:常见问题添加关于 PageHelper 集成的相关文档 mybatis-flex v1.2.1 20230506: 新增:代码生成器添加 tableDef 的生成功能;感谢 @笨小孩 新增:增指定批次批量删除的方法,防止请求时间过长异常;感谢 @笨小孩 优化:Mapper 配置所对应的 XML 文件 增加默认值;感谢 @lhzsdnu 优化:拆分APT模块, 优化APT配置说明;感谢 @snow 优化:添加 ClassUtil.isArray 方法用于重构 优化:重命名 UpdateEntity.wrap 为 UpdateEntity.of #I6Z7HK 优化:重构 OracleDialect 默认不加双引号;感谢 @MyronLi 优化:重构代码生成器模块,新增 IGenerator 接口 优化:修改 BaseMapper 的一些注释错误 修复:Oracle 下查询报错的问题 #I6Z7K4 修复:insertSelective 报错的问题 #12 修复:全局监听器父类注册是接口时无法触发监听器 #17 修复:因 @NotBlank(message = "xxx") 到 QueryColumn 无法生成的问题 #I6ZPD1 修复:不支持自己扩展 mapper 的问题 #I6ZTS3 修复:Db + Row 工具的使用枚举映射异常问题 #I6ZW2G 修复:批量新增逻辑删除字段有问题 #I6ZX5N 修复:left join (select ...) 子查询参数解析错误 #I709S1 mybatis-flex v1.2.0 20230426: 新增:FlexGlobalConfig.setDefaultConfig 方法,使其扩展更加灵活,用于适配 solon 新增:BaseMapper.insertBatch(entities,size) 方法,自定义分批插入;感谢 @庄佳彬 新增:Entity 的监听器可以配置为父类 BaseEntity 的支持 新增:Apt 添加自定义 字段名命名风格 的支持 #I6YGRG 修复:processor.tablesClassName 配置不起作用的问题;感谢 @玩具猫 修复:left join 关联查询 on 有第二个条件赋值错误的问题; #I6YT2R 修复:审计日志中赋值异常的问题 #I6Z1R8 修复:修复 createIdKeyGenerator 对 keyType.None 判断错误的问题 优化:修改 @Table 注解,删除其 @Inherited 文档:重构文档结构、使之更加清晰;感谢 @snow 文档:同步新版本 apt 功能文档 mybatis-flex v1.1.9 20230424: 新增:根据 id 查询数据时,返回默认字段而非全部字段;感谢 @wnp 新增:APT 添加忽略 entity 后缀的配置支持 修复:where 中第一个括号处理不正确的问题 #I6XXWR 修复:批量插入且配置 onInsert 时,出现错误的问题 修复:批量插入 row,且为 row 设置主键时,出错的问题 #I6Y8ZU 修复:Oracle 在某些情况下出现 SQLSyntaxErrorException 错误的问题 #I6Y6MZ 修复:RowUtil.printPretty 在某些情况下显示数据不正确的问题 修复:APT 无法生成 @NotBlank 注解字段的问题 优化:更新 apt 的 mappersGenerateEnable 默认值为 false 文档:优化 APT 的相关文档 文档:优化 快速开始 的相关文档 文档:添加 column 全局配置的相关文档 mybatis-flex v1.1.8 20230422: 新增:添加 RowUtil.printPretty() 方法,用于调试 新增:代码生成器生成代码默认添加注释的功能 新增:添加 BaseEntity.insertSelective() 方法 #I6XS9Z 修复:子查询时,逻辑删除字段的未添加逻辑删除字段 #I6X4U8 修复:TransactionTemplate.execute 失效的问题 #I6XSHH 修复:"EXIST" 关键字错误的问题 #I6XTVB 优化:Row 添加列序号的功能,数据库返回结果相同列不再覆盖 文档:添加 使用 Mybatis 原生功能的相关文档 文档:添加 支持的数据库类型 的相关文档 文档:Db + Row 添加 left join 转换 entity 的文档 文档:优化 快速开始 的相关文档 文档:APT 文档添加关于 Gradle 构建的一些内容 mybatis-flex v1.1.7 20230421: 优化:将 ConsoleMessageCollector 的 getFullSql 方法移入 AuditMessage,方便重用 感谢 @pengpeng 修复:配置 mybatis-flex.mapper-locations 在某些场景下会出现 NPE 的问题 #I6X59V 修复:子查询时,子 SQL 的逻辑删除字段未添加 #I6X4U8 修复:启用乐观锁 和 逻辑删除时,在某些极端情况下会出现 argument type mismatch 异常的问题 感谢 @pengpeng 文档:APT 添加和 Lombok、Mapstruct 整合的文档 文档:完善补充 "打印SQL" 的相关文档 mybatis-flex v1.1.6 20230419: 新增:QueryCondition 添加 when(Predicate) 方法,感谢 @落羽er 新增:代码生成器 ColumnConfig 添加 tenantId 字段配置,用于代码生成时添加 @Column(tenantId=true) 注解,感谢 @pengpeng 新增:代码生成器 TableConfig 添加 mapperGenerateEnable 配置,感谢 @pengpeng 新增:代码生成器添加 IDialect.MYSQL 方言 优化:FlexEnumTypeHandler.java 完善对 public field 的读取 优化:代码生成器生成 java 文件时,打印生成目录 修复:flex 和 lombok 以及 mapstruct 同时使用时,APT 配置文件不生效的问题。 #I6WTN6 修复:使用 QueryMethods.count() 时出错的问题。#I6X2M6 文档:修改 SQL 审计模块的文档错误,感谢 @lhzsdnu mybatis-flex v1.1.5 20230418: 新增:增加对 @Table 自动生成 Mapper 的控制属性 mapperGenerateEnable。感谢 @草语 新增:QueryCondition 自动忽略 null 值的功能 #I6WCS9 新增:增加 APT Mapper 自动生成时,可通过 mybatis-flex.properties 自定义父类的支持。感谢 @草语 新增:代码生成添加自定义 BaseMapper 的支持 优化:重构移除 RowSessionManager 优化:重命名 DbAutoConfiguration 为 FlexTransactionAutoConfiguration 优化:优化 FlexEnumTypeHandler 未找到 getter 方法时的错误提示 优化:优化自定义逻辑删除内容可能存在错误的一些问题 修复:在某些场景下,动态条件时,生成的 SQL 错误 #I6W89G 修复:在某些情况下,枚举属性出现异常的问题 #I6WGSA 文档:优化事务相关的文档 文档:添加枚举属性的相关文档 文档:修改 SQL 打印的文档错误 文档:APT 添加关于关闭 mapper 生成的文档 文档:queryWrapper 添加特别注意事项的内容 mybatis-flex v1.1.4 20230417: 新增:添加逻辑删除的自定义内容配置功能 新增:Entity 添加枚举属性的支持 新增:BaseMapper 新增 insertOrUpdate() 方法 新增:事务添加 Propagation 参数配置的支持 新增:为 Spring 适配 @Transactional 注解的支持 修复:租户模式下,deleteBatchByIds 报错的问题 修复:ProviderUtil NPE 的问题 修复:APT 和 TableInfo 构建多出静态变量的问题 文档:完善逻辑删除的相关文档 文档:修改 ignoreNulls 描述错误的问题 mybatis-flex v1.1.3 20230414: 新增:代码生成器生成的 entity 可以支持配置父类和实现的接口 修复:在某些场景下出现 Recursive update 错误的问题 修复:Entity 继承父类,但是 APT 生成的代码没有父类字段的问题 修复:QueryWrapper unionAll 报错的问题 修复:修复多租户的场景下 union 的子查询不添加租户 ID 的问题 mybatis-flex v1.1.2 20230413: 新增:QueryCondition 的 and(string) 和 or(string) 方法 新增:Page.map() 方法用于 Page 数据转换 新增:SQL 审计新增数据返回行数和自定义业务ID的支持 新增:Row 新增 Row.toObject() 方法,用于转换为 VO 对象 新增:RowUtil.java 工具类,用于 Row List 数据转换 新增:代码生成器添加配置 Mapper 前后缀配置的功能 新增:代码生成器添加配置 entity 前后缀配置的功能 优化:重构 MultiDataSourceAutoConfiguration.java 优化:重命名 Page.list 为 Page.records 优化:当配置了错误的数据库账号和密码,错误提示不友好的问题 优化:重命名 "MessageCreator" 为 "MessageFactory" 优化:重命名 RawValue.context 为 content 修复:ClassUtil 无法实例化被 lombok @Data() 修饰的 entity 的问题 修复:MybatisKeyGeneratorUtil.java 空指针的问题 修复:Springboot3 NestedIOException 找不到的问题 修复:QueryCondition 的值为 QueryColumn 或 RawValue 时错处的问题 修复:在某些场景下可能出现 Recursive update 的问题 文档:新增 Mybatis-Flex 和其他框架性能对比的文档 文档:添加整合 Springboot3 可能出现的问题帮助 mybatis-flex v1.1.0 20230412: 新增:Entity 的 onSet、onUpdate、onInsert 添加全局监听器的配置 优化:移除 QueryColumn.isNull 和 isNotNull 的参数 优化:重构 CustomKeyGenerator 的部分代码 修复:UpdateEntity 工具类在某些场景下出错的问题 修复:审计消息 AuditMessage 在 entity 配置 typeHandler 时,获取的参数不正确的问题 文档:添加 entity 全局监听器的相关文档 mybatis-flex v1.0.9 20230410: 新增:新增 多租户 使用的相关模块 新增:BaseMapper 添加 deleteByCondition 和 updateByCondition 方法 新增:添加 paginate 的更简单易用的相关方法 新增:QueryMethods 添加 column() 方法 新增:ConsoleMessageCollector 用于在控制台输出 SQL 及其执行时间 新增:QueryWrapper 添加 union 和 union all 的支持 新增:mybatis-flex-solon-plugin 插件,方便在 solon 框架下使用 修复:@Table(onSet) 配置在某些场景无法使用的问题 修复:Postgresql 的 limit offset 方言出错的问题 修复:多数据源的场景下,通过 @Table(dataSource) 配置无效的问题 优化:修改错别字 processer 为 processor 优化:优化 DbAutoConfiguration 未正确配置数据源时的错误信息 优化:Row 添加 getString()/getInt() 等等相关方法 优化:代码生成器通过 SqlServer 生成出错的问题 文档:优化 QueryWrapper 的相关文档 文档:优化 SQL 审计的相关文档 文档:添加 SQL 控制台打印输出的相关文档 文档:添加多租户的相关文档 文档:优化逻辑删除的相关文档 mybatis-flex v1.0.7 20230406: 新增:BaseMapper 添加可以直接根据 Condition 查询的方法,更加方便 新增:Db 添加可以直接根据 Condition 查询的方法,更加方便 新增:代码生成器添加 @Table(onSet) 的配置 新增:添加 HttpMessageReporter,用于可以往服务器发送审计日志 优化:APT 生成的 java 属性默认使用下划线的方式 优化:优化 APT 生成 mapper 的默认存放路径 优化:重命名 QueryEntityProcesser 为 QueryEntityProcessor 文档:添加字段权限的相关文档 文档:添加字典回写的相关文档 文档:添加字段加密的相关文档 文档:添加 Mybatis-Flex 与同类框架对比的文档 mybatis-flex v1.0.6 20230403: 新增:新增多数据源的支持 新增:Db.tx() 的事务提交方法 新增:RawValue 类,用于一些不需要进行 Sql 编译的场景 新增:@Table() 注解,添加 onSet 配置,用于监听 entity 被设置内容 新增:添加独创的 FlexIDKeyGenerator ID 生成器,用于分布式 ID 生成 优化:重命名 TableInfos 为 TableInfoFactory 优化:重命名审计日志的 "extTime" 为 "queryTime" 修复:AuditManager 在某些场景下会出现空指针的问题 文档:添加多数据源的相关文档 文档:添加事务管理的相关文档 文档:添加与 Spring 整合的相关文档 文档:优化 Db + Row 的相关文档 文档:QueryWrapper 添加关于 join 的更多示例 文档:添加关于 APT 使用的相关文档 文档:优化 readme 和 快速开始的相关文档 mybatis-flex v1.0.5 20230330: 新增:新增 SQL 审计模块,默认关闭 新增:代码生成器新增 lombok 配置的支持 新增:代码生成器新增可以配置多个表前缀的支持 新增:代码生成器添加 SqliteDialect 方言的支持 新增:代码生成器添加自定义 Entity 属性类型的配置支持 优化:修改方法 "deleteByByMap" 为 "deleteByMap" 优化:修改方法 "Db.insertRow()" 为 "Db.insert()" 修复:在某些场景下,Row.toEntity() 出现类型转换错误的问题 修复:queryWrapper 的 "in" 逻辑在某些场景下错误的问题 修复:代码生成器对 Mysql 的 "blob" 类型生成错误的问题 文档:新增关于代码生成器的相关文档 文档:新增 SQL 审计模块的相关文档 文档:优化 queryWrapper 的相关文档 文档:优化 分页查询 的相关文档 mybatis-flex v1.0.4 20230326: 新增:@ColumnMask() 注解用于数据脱敏,内置 9 中脱敏方式 新增:BaseMapper.selectAll() 方法 新增:BaseMapper.selectListByMap(Map whereConditions, int count) 方法 新增:添加 resource 配置,使得生成的代码自动集成到 classpath 中。 感谢 @piggsoft 新增:mybatis-flex-codegen 模块,用于 数据库-> Java 的代码生成 新增:@Table() 注解添加 OnInsert 和 OnUpdate 的配置支持 文档:新文档站点 https://mybatis-flex.com 上线 mybatis-flex v1.0.3 20230321: 新增:APT 自动生成 Mapper 代码的功能,无需在手动编写 新增:APT 新增 "processer.mappersGenerateEnable" 配置,用于开启是否自动生成 Mapper 类 修复:condition.when(flag) 的 value 值有返回的问题 文档:添加 where 动态条件文档示例,同步 APT 的文档 mybatis-flex v1.0.2 20230317: 新增:添加自定义字段 typeHandler @Column(typeHandler=xxx) 的配置 新增:内置默认的 fastjson fastjson2 gson jackson 的 TypeHandler,方便开发者直接使用 增强:entity 查询支持通过 QueryWrapper 传入表名以实现更灵活的需求 优化:对方言 CommonsDialectImpl.forInsertEntity 添加字段 wrap 优化:重构 TableInfo 的方法名,使其更加明确 优化:代码生成和 columns 构建支持更多默认的数据类型 优化:优化源码的中文注释描述 文档:优化 maven 依赖相关描述 mybatis-flex v1.0.0 20230312: 主要对 beta 和 rc 版本进行大量的重构和测试 mybatis-flex v1.0.0-rc.1 20230306: 优化:对 RowSqlProvider.java 的一些方法名进行重构 优化:QueryEntityProcesser 添加对 DEFAULT_COLUMNS 属性的生成 优化:RowKey.java 移除其 set 方法 优化:Entity 数据在被插入时,会自动设置逻辑删除的默认值 优化:添加主键生成的全局配置,可以不用为每个 Entity 单独配置主键内容 文档:添加 "逻辑删除" 的相关文档 文档:添加 "乐观锁" 的相关文档 文档:添加 entity 插入和更新的默认值设置的文档 文档:添加 OrderBy 的 QueryWrapper 示例 mybatis-flex v1.0.0-beta.2 20230303: 优化:当只查询一张表时,SQL生成的字段不添加表前缀 优化:完善对 @Column(onUpdateValue=xxx,onInsertValue=xxx) 的支持 优化:完善对 @Column(version = true) 的支持 优化:重命名 BaseMapper 的 insertBatchWithFirstEntityColumns 为 insertBatch 优化:重命名 DialectFactory 的 createDialectByDbType 为 createDialect 优化:为逻辑删除的默认值功能添加常量 修复:createDialectByDbType 方法中pg库的 KeywordWrap 错误 文档:优化文档 mybatis-flex v1.0.0-beta.1: init mybatis-flex