From 5fd4d845af4b4bfaddad326a3ea6bbca22090dc2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=99=88=E5=AD=90=E9=BB=98?= <925456043@qq.com>
Date: Mon, 3 Aug 2026 14:55:32 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E5=85=BC=E5=AE=B9=20Milvus=20=E5=AD=97?=
=?UTF-8?q?=E7=AC=A6=E4=B8=B2=E4=B8=BB=E9=94=AE=E5=88=A0=E9=99=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 删除前统一规范化主键值
- 补充字符串主键回归测试
---
.../store/milvus/MilvusPrimaryKeySupport.java | 39 +++++++++++++++++
.../store/milvus/MilvusVectorStore.java | 6 ++-
.../milvus/MilvusPrimaryKeySupportTest.java | 42 +++++++++++++++++++
3 files changed, 85 insertions(+), 2 deletions(-)
create mode 100644 easy-agents-store/easy-agents-store-milvus/src/main/java/com/easyagents/store/milvus/MilvusPrimaryKeySupport.java
create mode 100644 easy-agents-store/easy-agents-store-milvus/src/test/java/com/easyagents/store/milvus/MilvusPrimaryKeySupportTest.java
diff --git a/easy-agents-store/easy-agents-store-milvus/src/main/java/com/easyagents/store/milvus/MilvusPrimaryKeySupport.java b/easy-agents-store/easy-agents-store-milvus/src/main/java/com/easyagents/store/milvus/MilvusPrimaryKeySupport.java
new file mode 100644
index 0000000..6d1ff1c
--- /dev/null
+++ b/easy-agents-store/easy-agents-store-milvus/src/main/java/com/easyagents/store/milvus/MilvusPrimaryKeySupport.java
@@ -0,0 +1,39 @@
+package com.easyagents.store.milvus;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * Milvus VarChar 主键转换工具。
+ */
+final class MilvusPrimaryKeySupport {
+
+ /**
+ * 禁止实例化无状态工具类。
+ */
+ private MilvusPrimaryKeySupport() {
+ }
+
+ /**
+ * 将删除主键归一化为 Milvus VarChar 主键值。
+ *
+ *
Milvus 向量存储创建的集合固定使用 VarChar 类型的 {@code id} 主键。
+ * Java SDK 会根据传入值类型生成删除表达式,因此数值对象必须先转为字符串。
+ *
+ * @param ids 调用方提供的主键集合
+ * @return 可直接传给 Milvus Java SDK 的字符串主键列表
+ * @throws NullPointerException 主键集合中包含空值时抛出
+ */
+ static List