v6.8.0 (2026-09-16)
<dependency>
<groupId>net.hasor</groupId>
<artifactId>dbvisitor</artifactId>
<version>6.8.0</version>
</dependency>
主要看点
- 运行环境升级到 Java 17:从 6.8.0 开始不再兼容 JDK 8。
- 扩展 Milvus 数据访问能力:支持多种向量类型、混合检索、重排、BM25、导入任务及 TLS/mTLS 连接。
- 完善 JDBC 适配器行为:增加库表字段元信息查询,修复多结果读取、参数绑定和资源释放问题。
- 增强数据库方言:Oracle、SQL Server 支持序列主键;ClickHouse 支持向量操作和删除模式选择。
- 修复核心 API 边界问题:涵盖分页结果、主键回填、类型处理和事务失败后的状态清理。
影响范围
- 核心模块:构造器 API、Mapper、参数解析、类型处理器、分页和本地事务。
- JDBC 驱动:公共 JDBC 层及 Milvus、Elasticsearch、MongoDB、Redis 四个适配器。
- 数据库方言:序列、空值排序、向量操作 及非关系型数据库命令生成。
- Hasor 集成:数据源配置、Session 装配和 Mapper 扫描入口。
更新内容
-
Milvus
- Java SDK 从 2.5.4 升级到 2.6.22,统一使用
MilvusClientV2。 - 支持 Binary、Float16、BFloat16、Sparse 和 Int8 向量的读写与搜索。
- 完善 nullable、DEFAULT 和 Array 字段定义。
- 增加 Hybrid Search、RRF/Weighted rerank 和 BM25、TEXTEMBEDDING 函数配置。
- 扩展计数、NOT IN、BETWEEN、分组搜索和混合查询过滤。
- 补充集合、字段、索引、分区、权限及资源组管理命令。
- 支持多行 VALUES 和 Iterable/Iterator 分页写入。
- 支持通过 JDBC
getGeneratedKeys()返回生成的主键。 - 完善 Import 文件分组、任务编号回传、状态查询及失败信息。
- 支持单地址连接、TLS/mTLS、证书和 token 认证,可配置 Zilliz Cloud 端点。
- 兼容 Zilliz Cloud 描述性版本信息,避免建立连接时解析失败。
- 修复范围删除忽略 LIMIT 和固定取数上限的问题。
- 查询按需取数,更新和删除按页处理,并提供有限重试及失败进度。
- UPDATE 使用原生 Partial Update,避免覆盖未修改字段。
- 过滤条件使用 SDK 模板参数,修复字符串拼接的表达式注入风险。
- 修复 BM25 运算符中的问号被误认为参数。
- 修复时间字段写入与过滤值格式不一致。
- Java SDK 从 2.5.4 升级到 2.6.22,统一使用
-
JDBC 驱动与其它适配器
- 新增
MetadataSupport,四个适配器按数据库能力提供标准 JDBC 元信息。 - 完善列的可空性、自增标记和数组元素类型。
- 修正 JDBC 驱动版本信息仍显示旧版本的问题。
- 修正四个适配器解析器的生成目录,避免 IDE 无法正确识别包路径。
- 支持按列名选择生成键。
- 修复多语句执行时命令列表被清空和参数位置偏移。
- 修复多结果访问,以及重执行、取消、超时和关闭时的资源释放。
- 修复 PreparedStatement 重执行时参数丢失。
- 完善 SQLType、日期时区、数组及基本类型数组绑定。
- 修复结果列匹配和 CallableStatement 长整数输出。
- 修复 Array、Blob、Clob 的切片、范围校验及释放状态处理。
- Elasticsearch 增强聚合、批量写入和字段结果处理。
- 修复 Elasticsearch URL 查询参数分隔符及 Java 时间参数序列化。
- MongoDB 完善投影、Upsert 和字段类型处理,修复时间参数 BSON 编码。
- Redis 增加 EVAL、二进制字符串读写和长整型过期参数。
- 修复 Redis 引号参数及命令前导换行解析。
- 新增
-
核心 API 与方言
- Oracle、SQL Server 方言接入
KeyType.Sequence与@KeySeq序列取值。 - ClickHouse 增加向量排序、范围过滤和
ChVectorTypeHandler。 - ClickHouse 支持选择轻量删除或 Mutation 删除。
- 参数模板支持转义字面量参数标记,兼容冒号紧贴位置参数。
- 修复表达式被误判为参数配置和 XML 命令空白丢失。
- 修复向量排序参数未使用 字段 TypeHandler。
- 修复枚举被误按 JDBC OTHER 绑定和十进制文本转换精度损失。
- 修复
specialJavaType未传给处理器及处理器回退缓存问题。 - 修复 Mapper 单个 Map 参数的生成主键回填。
- 修复自由查询
queryForMap()返回空 Map,保留结果列名、别名与空值。 - 修复
PageResult<T>实体类型解析及重建时的页码偏移。 - 修复默认空值排序,完善空值首尾与升降序组合。
- 修复事务初始化失败后的状态残留、连接引用泄漏及原事务绑定丢失。
- 修复新事务隔离设置影响外层事务。
- Hasor 的数据源配置、Session 装配和 Mapper 扫描可按需组合。
- Oracle、SQL Server 方言接入
升级说明
- 运行环境:6.8.0 起构建和运行要求 Java 17+,不再兼容 JDK 8。
- 依赖版本:Cobble 从 5.0.2 升级到 5.0.3;dbVisitor 各模块应保持版本一致。
- Milvus 版本:支持 2.6.x,最低 2.6.2;不支持 3.0。
- Milvus 功能条件:向量可空要求 2.6.18+,TRUNCATE 要求 2.6.11+。
- Milvus 连接:每个 JDBC 连接使用一个服务地址,旧多地址配置需调整。
- Milvus 自定义客户端:
createMilvusClient()改为返回MilvusClientV2,不再返回MilvusServiceClient。 - Milvus SDK 扩展:自定义工厂、拦截器及
unwrap调用需适配 V2 客户端。 - Milvus 分页写入:不具备跨页原子性,失败后需检查异常中的已完成进度。
- Milvus 写入重试:
maxRetry控制失败页写调用的最大重试次数。 - Milvus JDBC 能力:多语句、多行写入不是 JDBC Batch;仍不支持 JDBC Batch 和事务。
- 向量处理器:
PgVectorTypeHandler从handler.array移至handler.vector,更新 Java、注解及 XML 引用。 - 自定义适配器:
JdbcColumn构造方法需补齐nullable、autoIncrement、elementType。 - 元信息扩展:需要提供元信息的连接类实现
MetadataSupport,否则无需接入。 - Hasor 自动配置:
DbVisitorModule、ConfigKeys已移除,配置文件装配改用AutoConfigModule。 - Hasor 手工装配:已有数据源使用
SessionConfigurer和MapperScannerConfigurer,见 Hasor 整合。