跳到主要内容

v6.8.0 (2026-09-16)

<dependency>
<groupId>net.hasor</groupId>
<artifactId>dbvisitor</artifactId>
<version>6.8.0</version>
</dependency>

主要看点

  1. 运行环境升级到 Java 17:从 6.8.0 开始不再兼容 JDK 8。
  2. 扩展 Milvus 数据访问能力:支持多种向量类型、混合检索、重排、BM25、导入任务及 TLS/mTLS 连接。
  3. 完善 JDBC 适配器行为:增加库表字段元信息查询,修复多结果读取、参数绑定和资源释放问题。
  4. 增强数据库方言:Oracle、SQL Server 支持序列主键;ClickHouse 支持向量操作和删除模式选择。
  5. 修复核心 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 运算符中的问号被误认为参数。
    • 修复时间字段写入与过滤值格式不一致。
  • 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 扫描可按需组合。

升级说明

  • 运行环境: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 和事务。
  • 向量处理器PgVectorTypeHandlerhandler.array 移至 handler.vector,更新 Java、注解及 XML 引用。
  • 自定义适配器JdbcColumn 构造方法需补齐 nullableautoIncrementelementType
  • 元信息扩展:需要提供元信息的连接类实现 MetadataSupport,否则无需接入。
  • Hasor 自动配置DbVisitorModuleConfigKeys 已移除,配置文件装配改用 AutoConfigModule
  • Hasor 手工装配:已有数据源使用 SessionConfigurerMapperScannerConfigurer,见 Hasor 整合