diff --git a/starter/studio-platform-starter-ai/src/main/java/studio/one/platform/ai/service/visualization/JdbcVectorProjectionPointRepository.java b/starter/studio-platform-starter-ai/src/main/java/studio/one/platform/ai/service/visualization/JdbcVectorProjectionPointRepository.java index 986c3719..0f1529d7 100644 --- a/starter/studio-platform-starter-ai/src/main/java/studio/one/platform/ai/service/visualization/JdbcVectorProjectionPointRepository.java +++ b/starter/studio-platform-starter-ai/src/main/java/studio/one/platform/ai/service/visualization/JdbcVectorProjectionPointRepository.java @@ -93,7 +93,7 @@ SELECT COUNT(*) ON p.vector_item_id = """ + pointJoinExpression() + """ WHERE p.projection_id = :projectionId """ + where + """ - ORDER BY """ + JdbcVectorProjectionSql.orderByDisplayOrder(postgres) + """ + """ + JdbcVectorProjectionSql.orderByDisplayOrderClause(postgres) + """ LIMIT :limit OFFSET :offset """, params, rowMapper); return new ProjectionPointPage(total == null ? 0L : total, items); diff --git a/starter/studio-platform-starter-ai/src/main/java/studio/one/platform/ai/service/visualization/JdbcVectorProjectionSql.java b/starter/studio-platform-starter-ai/src/main/java/studio/one/platform/ai/service/visualization/JdbcVectorProjectionSql.java index 4671d9c7..8315a461 100644 --- a/starter/studio-platform-starter-ai/src/main/java/studio/one/platform/ai/service/visualization/JdbcVectorProjectionSql.java +++ b/starter/studio-platform-starter-ai/src/main/java/studio/one/platform/ai/service/visualization/JdbcVectorProjectionSql.java @@ -48,4 +48,8 @@ static String orderByDisplayOrder(boolean postgres) { } return "p.display_order IS NULL, p.display_order, p.vector_item_id"; } + + static String orderByDisplayOrderClause(boolean postgres) { + return " ORDER BY " + orderByDisplayOrder(postgres); + } } diff --git a/starter/studio-platform-starter-ai/src/test/java/studio/one/platform/ai/service/visualization/JdbcVectorProjectionSqlTest.java b/starter/studio-platform-starter-ai/src/test/java/studio/one/platform/ai/service/visualization/JdbcVectorProjectionSqlTest.java index aa5ad10e..a100a6c7 100644 --- a/starter/studio-platform-starter-ai/src/test/java/studio/one/platform/ai/service/visualization/JdbcVectorProjectionSqlTest.java +++ b/starter/studio-platform-starter-ai/src/test/java/studio/one/platform/ai/service/visualization/JdbcVectorProjectionSqlTest.java @@ -29,4 +29,12 @@ void mysqlJsonTextUsesParameterizedPath() { assertThat(JdbcVectorProjectionSql.jsonText(null, ":filterKey0", false)) .isEqualTo("JSON_UNQUOTE(JSON_EXTRACT(metadata, CONCAT('$.', :filterKey0)))"); } + + @Test + void orderByDisplayOrderClauseKeepsSpaceAfterOrderBy() { + assertThat(JdbcVectorProjectionSql.orderByDisplayOrderClause(true)) + .isEqualTo(" ORDER BY p.display_order NULLS LAST, p.vector_item_id"); + assertThat("WHERE p.projection_id = :projectionId" + JdbcVectorProjectionSql.orderByDisplayOrderClause(true)) + .contains(" ORDER BY p.display_order"); + } }