Skip to content

Commit 59e6530

Browse files
committed
Check for _ID and _CAS as well as __id and __cas being projected from query and analytics. (#1390)
Closes #1389.
1 parent 40faef3 commit 59e6530

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

src/test/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreatorTests.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,39 @@ queryMethod, converter, config().bucketname(), new SpelExpressionParser(),
149149
}
150150
}
151151

152+
@Test
153+
@IgnoreWhen(missesCapabilities = Capabilities.QUERY, clusterTypes = ClusterType.MOCKED)
154+
void findUsingStringNq1l_3x_projection_id_cas() throws Exception {
155+
Airline airline = new Airline(UUID.randomUUID().toString(), "Continental", "USA");
156+
try {
157+
Airline modified = couchbaseTemplate.upsertById(Airline.class).one(airline);
158+
159+
String input = "getByName_3x";
160+
Method method = AirlineRepository.class.getMethod(input, String.class);
161+
162+
CouchbaseQueryMethod queryMethod = new CouchbaseQueryMethod(method,
163+
new DefaultRepositoryMetadata(AirlineRepository.class), new SpelAwareProxyProjectionFactory(),
164+
converter.getMappingContext());
165+
166+
StringN1qlQueryCreator creator = new StringN1qlQueryCreator(getAccessor(getParameters(method), "Continental"),
167+
queryMethod, converter, config().bucketname(), new SpelExpressionParser(),
168+
QueryMethodEvaluationContextProvider.DEFAULT, namedQueries);
169+
170+
Query query = creator.createQuery();
171+
172+
ExecutableFindByQuery q = (ExecutableFindByQuery) couchbaseTemplate.findByQuery(Airline.class)
173+
.withConsistency(QueryScanConsistency.REQUEST_PLUS).matching(query);
174+
175+
Optional<Airline> al = q.one();
176+
assertEquals(airline.toString(), al.get().toString());
177+
} catch (Exception e) {
178+
e.printStackTrace();
179+
throw e;
180+
} finally {
181+
couchbaseTemplate.removeById().one(airline.getId());
182+
}
183+
}
184+
152185
private ParameterAccessor getAccessor(Parameters<?, ?> params, Object... values) {
153186
return new ParametersParameterAccessor(params, values);
154187
}

0 commit comments

Comments
 (0)