Skip to content

Commit d3f1095

Browse files
committed
Fix arrayContaining n1ql generated. (#1548)
Closed #1545.
1 parent 935dd1f commit d3f1095

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

src/main/java/org/springframework/data/couchbase/core/query/QueryCriteria.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,12 +331,12 @@ public QueryCriteria arrayContaining(@Nullable Object o) {
331331
}
332332

333333
public QueryCriteria arrayContaining(boolean ignoreCase, @Nullable Object o) {
334-
operator = "array_containing";
334+
operator = "array_contains";
335335
if (ignoreCase) {
336336
throw new CouchbaseException("ignoreCase not supported in IN and NOT_IN");
337337
}
338338
value = new Object[] { o };
339-
format = "array_containing(%1$s, %3$s)";
339+
format = "array_contains(%1$s, %3$s)";
340340
return this;
341341
}
342342

src/test/java/org/springframework/data/couchbase/core/CouchbaseTemplateQueryIntegrationTests.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,11 @@ void findByMatchingQuery() {
133133
.matching(specialUsers).all();
134134

135135
assertEquals(1, foundUsers.size());
136+
137+
Query arrayContaining = new Query(QueryCriteria.where(i("firstname")).arrayContaining("not_match_anything"));
138+
final List<User> foundArrayContaining = couchbaseTemplate.findByQuery(User.class).withConsistency(REQUEST_PLUS)
139+
.matching(arrayContaining).all();
140+
assertEquals(0, foundArrayContaining.size());
136141
}
137142

138143
@Test

src/test/java/org/springframework/data/couchbase/core/query/QueryCriteriaTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ void testNotContaining() {
180180
@Test
181181
void testArrayContaining() {
182182
QueryCriteria c = where(i("name")).arrayContaining("Elvis");
183-
assertEquals("array_containing(`name`, \"Elvis\")", c.export());
183+
assertEquals("array_contains(`name`, \"Elvis\")", c.export());
184184
}
185185

186186
@Test

0 commit comments

Comments
 (0)