diff --git a/src/main/java/org/springframework/data/couchbase/core/query/Query.java b/src/main/java/org/springframework/data/couchbase/core/query/Query.java index feda684f..5b154ec1 100644 --- a/src/main/java/org/springframework/data/couchbase/core/query/Query.java +++ b/src/main/java/org/springframework/data/couchbase/core/query/Query.java @@ -248,7 +248,7 @@ public class Query { final StringBuilder statement = new StringBuilder(); appendString(statement, n1ql.selectEntity); // select ... appendWhereString(statement, n1ql.filter); // typeKey = typeValue - appendWhere(statement, null); // criteria on this Query + appendWhere(statement, new int[] { 0 }); // criteria on this Query appendSort(statement); appendSkipAndLimit(statement); return statement.toString(); diff --git a/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryQueryIntegrationTests.java b/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryQueryIntegrationTests.java index c043e143..ff31d479 100644 --- a/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryQueryIntegrationTests.java +++ b/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryQueryIntegrationTests.java @@ -83,6 +83,29 @@ public class CouchbaseRepositoryQueryIntegrationTests extends ClusterAwareIntegr } } + // "1\" or name=name or name=\"1") + @Test + void findByInjection() { + Airport vie = null; + Airport xxx = null; + try { + vie = new Airport("airports::vie", "vie", "loww"); + airportRepository.save(vie); + xxx = new Airport("airports::xxx", "xxx", "xxxx"); + airportRepository.save(xxx); + sleep(1000); + List airports; + airports = airportRepository.findAllByIata("1\" or iata=iata or iata=\"1"); + assertEquals(0, airports.size()); + airports = airportRepository.findAllByIata("vie"); + assertEquals(1, airports.size()); + } finally { + airportRepository.delete(vie); + airportRepository.delete(xxx); + } + + } + @Test void findBySimpleProperty() { Airport vie = null;