升级与迁移

本文列出从旧版本升级到当前版本时需要注意的破坏性变更。

升级到 10.3.24

版本组合为 Rabbit SQL 10.3.24、rabbit-common 3.2.16、Starter 5.3.25。使用 Starter 的项目升级 Starter 即可获得配套 SQL/common 依赖;通过 dependencyManagement 或直接依赖锁定旧版本的项目需同步调整。发布顺序为 common、SQL、Starter,本次不更新 IDEA 插件及其内置依赖。

事务 API

Spring Boot 环境请使用:

com.github.chengyuxing.sql.spring.autoconfigure.Tx

不要使用内置的:

com.github.chengyuxing.sql.transaction.Tx

移除的简单 DML 方法

旧版 Baki#insert、Baki#update、Baki#delete 已移除,请统一使用 Baki#execute:

baki.execute("insert into test.user(name) values (:name)", Args.of("name", "cyx"));
baki.execute("update test.user set name = :name where id = :id", args);
baki.execute("delete from test.user where id = :id", args);

执行监听器

ExecutionWatcher 已改为 AroundExecutor<ExecutionContext>,相关方法也由 onStart / onStop 调整为 before / after。

命名参数前缀位置

namedParamPrefix 已从 BakiDao 移到 XQLFileManager 作为全局配置。

实体映射

内置 JPA 注解适配已移除。当前有按类简单名、字段名及值类型适配的默认 EntityMetaProvider,但不解析 JPA 注解,也不会自动标记主键;JPA 注解需要自行适配,参考 实体兼容 JPA 等其他框架。

更多历史变更

完整变更记录见 变更日志。

升级到 10.3.23

版本组合为 Rabbit SQL 10.3.23、rabbit-common 3.2.15、Starter 5.3.24。按 common、SQL、Starter 的顺序发布;显式锁定依赖的项目同步更新。IDEA 插件更新到 2.4.67.231-263,同步内置 rabbit-sql 10.3.23 和 rabbit-common 3.2.15;构建插件前先准备这两个版本的依赖。

本版新增通用树工具,导入 com.github.chengyuxing.common.tree.Tree 和 TreeNode 即可使用。节点实现 TreeNode<T, ID>;Java 根节点的 pid 使用 null,结构调整通过 moveNode、addNode、removeNode 完成,updateNode 只修改业务字段。完整示例及与前端 Tree 的差异见 实用工具。

UUID 查询结果可以是 UUID 对象、标准 36 位字符串或紧凑 32 位字符串。自定义 EntityMetaProvider.columnValue 时调用 ValueUtils.adaptValue(field.getType(), value) 即可复用转换。

UUID 参数现在通过 setString 绑定标准 36 位格式,原来使用 varchar(32) 的列需检查并扩容。对于已有的 32 位文本主键,仅扩容不会改变旧数据;需同时统一主键、外键及关联表中的存储格式,再使用 UUID 参数执行主键查询、更新和删除。未迁移时仍可读取映射为 UUID,但 UUID 参数不会自动匹配原来的 32 位文本;可通过显式 SQL 绑定原始 32 位字符串,或定制 StatementValueHandler 保留旧的紧凑写入约定。

PostgreSQL 原生 uuid 列、其他数据库的 UUID 类型和二进制列按驱动要求定制参数绑定,不将 setObject(UUID) 作为所有数据库的默认策略。校验注解不受 UUID 转换影响,仍需在业务调用 Rabbit 前显式验证,见 JPA 适配。

升级到 10.3.22

版本组合为 Rabbit SQL 10.3.22、rabbit-common 3.2.14、Starter 5.3.23 和插件 2.4.65.231-263。发布 Maven 构件时依次发布 common、SQL、Starter;项目显式锁定核心依赖版本时需同步更新。

完整格式与映射示例见 实用工具 和 实体操作。

升级到 10.3.21

版本组合为 Rabbit SQL 10.3.21、rabbit-common 3.2.13、Starter 5.3.22 和插件 2.4.64.231-263。发布 Maven 构件时依次发布 common、SQL、Starter;项目显式锁定核心依赖版本时需同步更新。

升级到 10.3.20

本次版本组合为 Rabbit SQL 10.3.20、rabbit-common 3.2.12、Starter 5.3.21 和插件 2.4.63.231-263。发布 Maven 构件时依次发布 common、SQL、Starter;升级 Starter 可带入相应 SQL 依赖,显式锁定旧版本的项目需同步更新。

升级前检查以下行为:

完整修复说明见 变更日志。