From 2547acfd00fa0c097fa211aa8a51de91b62236a5 Mon Sep 17 00:00:00 2001 From: Tigran Babloyan Date: Thu, 10 Aug 2023 11:42:31 +0400 Subject: [PATCH] Fixed issue with #n1ql.bucket evaluated as collection name in string based queries. Closes #1799 --- .../couchbase/repository/query/StringBasedN1qlQueryParser.java | 3 ++- .../repository/query/StringN1qlQueryCreatorTests.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java b/src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java index 97a9008aa..773290772 100644 --- a/src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java +++ b/src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java @@ -62,6 +62,7 @@ /** * @author Subhashni Balakrishnan * @author Michael Reiche + * @author Tigran Babloyan */ public class StringBasedN1qlQueryParser { public static final String SPEL_PREFIX = "n1ql"; @@ -166,7 +167,7 @@ public StringBasedN1qlQueryParser(String statement, CouchbaseQueryMethod queryMe this.queryMethod = queryMethod; this.couchbaseConverter = couchbaseConverter; this.statementContext = queryMethod == null ? null - : createN1qlSpelValues(collection != null ? collection : bucketName, scope, collection, + : createN1qlSpelValues(bucketName, scope, collection, queryMethod.getEntityInformation().getJavaType(), typeField, typeValue, queryMethod.isCountQuery(), null, null); this.parsedExpression = getExpression(statement, queryMethod, accessor, spelExpressionParser, evaluationContextProvider); diff --git a/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorTests.java b/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorTests.java index 663b90bf2..569999240 100644 --- a/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorTests.java +++ b/src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorTests.java @@ -208,7 +208,7 @@ void spelTests() throws Exception { assertEquals("SELECT `_class`, `jsonNode`, `jsonObject`, `jsonArray`, META(`myCollection`).`cas`" + " AS __cas, `createdBy`, `createdDate`, `lastModifiedBy`, `lastModifiedDate`, META(`myCollection`).`id`" - + " AS __id, `firstname`, `lastname`, `subtype` FROM `myCollection`|`_class` = \"abstractuser\"|`myCollection`|`myScope`|`myCollection`", + + " AS __id, `firstname`, `lastname`, `subtype` FROM `myCollection`|`_class` = \"abstractuser\"|`some_bucket`|`myScope`|`myCollection`", query.toN1qlSelectString(converter, bucketName(), "myScope", "myCollection", User.class, null, false, null, null)); }