DATACOUCH-296 Add support for delete n1ql queries
Changes to support delete query by query derivation and SpEL based queries. - Adds a N1qlMutateQueryCreator which constucts the delete query using dsl. - Adds new SpEL values delete and returning required for delete queries. Original pull request: #144.
This commit is contained in:
@@ -222,28 +222,6 @@ public class AbstractN1qlBasedQueryTest {
|
||||
verify(mock, never()).executeSingleProjection(any(N1qlQuery.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldThrowWhenModifyingType() throws Exception {
|
||||
|
||||
Method method = SampleRepository.class.getMethod("modifyingMethod");
|
||||
CouchbaseQueryMethod queryMethod = spy(new CouchbaseQueryMethod(method, metadata, projectionFactory, context));
|
||||
when(queryMethod.isModifyingQuery()).thenReturn(true);
|
||||
|
||||
N1qlQuery query = Mockito.mock(N1qlQuery.class);
|
||||
Pageable pageable = Mockito.mock(Pageable.class);
|
||||
AbstractN1qlBasedQuery mock = mock(AbstractN1qlBasedQuery.class);
|
||||
when(mock.executeDependingOnType(any(N1qlQuery.class), any(N1qlQuery.class), any(QueryMethod.class), any(Pageable.class),
|
||||
any(Class.class))).thenCallRealMethod();
|
||||
|
||||
try { mock.executeDependingOnType(query, query, queryMethod, pageable, Sample.class); fail(); } catch (UnsupportedOperationException e) { }
|
||||
verify(mock, never()).executeCollection(any(N1qlQuery.class), any(Class.class));
|
||||
verify(mock, never()).executeEntity(any(N1qlQuery.class), any(Class.class));
|
||||
verify(mock, never()).executeStream(any(N1qlQuery.class), any(Class.class));
|
||||
verify(mock, never()).executePaged(any(N1qlQuery.class), any(N1qlQuery.class), any(Pageable.class), any(Class.class));
|
||||
verify(mock, never()).executeSliced(any(N1qlQuery.class), any(N1qlQuery.class), any(Pageable.class), any(Class.class));
|
||||
verify(mock, never()).executeSingleProjection(any(N1qlQuery.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldExecuteSingleProjectionWhenRandomObjectReturnType() throws Exception {
|
||||
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
package org.springframework.data.couchbase.repository.query;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.*;
|
||||
import static org.springframework.data.couchbase.repository.query.N1qlQueryCreator.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import com.couchbase.client.java.query.dsl.Expression;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.data.couchbase.repository.query.support.N1qlQueryCreatorUtils;
|
||||
import org.springframework.data.repository.query.parser.Part;
|
||||
|
||||
import com.couchbase.client.java.query.dsl.Expression;
|
||||
@@ -24,9 +27,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field BETWEEN 1 AND 2";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) BETWEEN LOWER(\"c\") AND LOWER(\"d\")";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -41,9 +44,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field IS NOT NULL";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) IS NOT NULL";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -58,9 +61,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field IS NULL";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) IS NULL";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -75,9 +78,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field < 1";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) < LOWER(\"b\")";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -92,9 +95,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field <= 1";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) <= LOWER(\"b\")";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -109,9 +112,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field > 1";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) > LOWER(\"b\")";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -126,9 +129,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field >= 1";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) >= LOWER(\"b\")";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -143,9 +146,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field < 1";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) < LOWER(\"b\")";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -160,9 +163,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field > 1";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) > LOWER(\"b\")";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -177,9 +180,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field NOT LIKE 1";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) NOT LIKE LOWER(\"b\")";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -194,9 +197,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field LIKE 1";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) LIKE LOWER(\"b\")";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -211,9 +214,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field LIKE 1";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) LIKE LOWER(\"b%\")";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -228,9 +231,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field LIKE 1";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) LIKE LOWER(\"%b\")";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -245,9 +248,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field NOT LIKE 1";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) NOT LIKE LOWER(\"%b%\")";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -262,9 +265,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field LIKE 1";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) LIKE LOWER(\"%b%\")";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -279,9 +282,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field NOT IN [1]";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) NOT IN [\"b\"]";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -297,8 +300,8 @@ public class N1qlQueryCreatorTest {
|
||||
String expected = "doc.field NOT IN [\"av1\",\"av2\"]";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) NOT IN [\"bv1\",\"bv2\"]";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
||||
@@ -313,8 +316,8 @@ public class N1qlQueryCreatorTest {
|
||||
String expected = "doc.field NOT IN [\"av1\",\"av2\"]";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) NOT IN [\"bv1\",\"bv2\"]";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
||||
@@ -328,9 +331,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field IN [1]";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) IN [\"b\"]";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -346,8 +349,8 @@ public class N1qlQueryCreatorTest {
|
||||
String expected = "doc.field IN [\"av1\",\"av2\"]";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) IN [\"bv1\",\"bv2\"]";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
||||
@@ -362,8 +365,8 @@ public class N1qlQueryCreatorTest {
|
||||
String expected = "doc.field IN [\"av1\",\"av2\"]";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) IN [\"bv1\",\"bv2\"]";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
|
||||
@@ -374,7 +377,7 @@ public class N1qlQueryCreatorTest {
|
||||
Part.Type keyword = Part.Type.NEAR;
|
||||
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@@ -382,7 +385,7 @@ public class N1qlQueryCreatorTest {
|
||||
Part.Type keyword = Part.Type.WITHIN;
|
||||
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -393,9 +396,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "REGEXP_LIKE(doc.field, \"1\")";
|
||||
String expectedIgnoreCase = "REGEXP_LIKE(doc.field, \"b\")";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -410,9 +413,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field IS NOT MISSING";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) IS NOT MISSING";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -427,9 +430,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field = TRUE";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) = TRUE";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -444,9 +447,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field = FALSE";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) = FALSE";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -461,9 +464,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field != 1";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) != LOWER(\"b\")";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
@@ -478,9 +481,9 @@ public class N1qlQueryCreatorTest {
|
||||
String expectedNum = "doc.field = 1";
|
||||
String expectedIgnoreCase = "LOWER(doc.field) = LOWER(\"b\")";
|
||||
|
||||
Expression exp = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = createExpression(keyword, "doc.field", true, values);
|
||||
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
|
||||
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
|
||||
|
||||
assertEquals(expected, exp.toString());
|
||||
assertEquals(expectedNum, expNum.toString());
|
||||
|
||||
@@ -63,4 +63,25 @@ public class StringN1QlBasedQueryTest {
|
||||
|
||||
assertEquals("SELECT COUNT(*) AS " + CountFragment.COUNT_ALIAS + " FROM `B` WHERE true", parsed);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeletePlaceholder() throws Exception {
|
||||
String statement = spel(SPEL_DELETE) + " WHERE test = 1 AND " + spel(SPEL_FILTER);
|
||||
String parsed = new StringBasedN1qlQueryParser(statement, null, "B", "_class", String.class)
|
||||
.doParse(SPEL_PARSER, SPEL_EVALUATION_CONTEXT, true);
|
||||
|
||||
assertEquals("DELETE FROM `B` WHERE test = 1 AND `_class` = "
|
||||
+ "\"java.lang.String\"", parsed);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReturningPlaceholder() throws Exception {
|
||||
String statement = spel(SPEL_DELETE) + " WHERE test = 1 AND " + spel(SPEL_FILTER) + spel(SPEL_RETURNING) ;
|
||||
String parsed = new StringBasedN1qlQueryParser(statement, null, "B", "_class", String.class)
|
||||
.doParse(SPEL_PARSER, SPEL_EVALUATION_CONTEXT, true);
|
||||
|
||||
assertEquals("DELETE FROM `B` WHERE test = 1 AND `_class` = "
|
||||
+ "\"java.lang.String\" returning `B`.*, META(`B`).id AS _ID, META(`B`).cas AS _CAS", parsed);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user