diff --git a/spring-ai-alibaba-nl2sql/spring-ai-alibaba-nl2sql-chat/src/main/java/com/alibaba/cloud/ai/service/base/BaseSchemaService.java b/spring-ai-alibaba-nl2sql/spring-ai-alibaba-nl2sql-chat/src/main/java/com/alibaba/cloud/ai/service/base/BaseSchemaService.java index cc6a381051..30c3075715 100644 --- a/spring-ai-alibaba-nl2sql/spring-ai-alibaba-nl2sql-chat/src/main/java/com/alibaba/cloud/ai/service/base/BaseSchemaService.java +++ b/spring-ai-alibaba-nl2sql/spring-ai-alibaba-nl2sql-chat/src/main/java/com/alibaba/cloud/ai/service/base/BaseSchemaService.java @@ -277,9 +277,17 @@ protected List buildTableListFromDocuments(List documents) { dto.setName((String) meta.get("name")); dto.setDescription((String) meta.get("description")); if (meta.containsKey("primaryKey")) { - String primaryKey = (String) meta.get("primaryKey"); - if (StringUtils.isNotBlank(primaryKey)) { - dto.setPrimaryKeys(List.of(primaryKey)); + Object primaryKeyObj = meta.get("primaryKey"); + if (primaryKeyObj instanceof List) { + @SuppressWarnings("unchecked") + List primaryKeys = (List) primaryKeyObj; + dto.setPrimaryKeys(primaryKeys); + } + else if (primaryKeyObj instanceof String) { + String primaryKey = (String) primaryKeyObj; + if (StringUtils.isNotBlank(primaryKey)) { + dto.setPrimaryKeys(List.of(primaryKey)); + } } } tableList.add(dto);