Files
spring-data-examples/mongodb/query-by-example
Oliver Gierke 4164bc4607 #297 - Upgraded to Boot 2.0 and Spring Data Kay.
Bumped version number to 2.0. Upgraded to Spring Boot 2.0.

Stuff disabled in the meantime:

- Cassandra: needs API adaptions in configuration
- JPA > Security: test fails with weird Hibernate error
- Redis > Reactive: API updates needed
- Solr: configration updates necessary

adjust versions

Updated elastic search to the new version.

Fixed the reactor version to Bismuth-BUILD-SNAPSHOT. This probably should be undone when boot references the proper bom.
2017-10-06 15:15:53 +02:00
..

Spring Data MongoDB - Query-by-Example (QBE) example

This project contains samples of Query-by-Example of Spring Data MongoDB.

Support for Query-by-Example

Query by Example (QBE) is a user-friendly querying technique with a simple interface. It allows dynamic query creation and does not require to write queries containing field names. In fact, Query by Example does not require to write queries using JPA-QL at all.

An Example takes a data object (usually the entity object or a subtype of it) and a specification how to match properties. You can use Query by Example with MongoOperations and Repositories.

public interface PersonRepository extends CrudRepository<Person, String>, QueryByExampleExecutor {
}
Example<Person> example = Example.of(new Person("Jon", "Snow"));
repo.findAll(example);


ExampleMatcher matcher = ExampleMatcher.matching().
    .withMatcher("firstname", endsWith())
    .withMatcher("lastname", startsWith().ignoreCase());

Example<Person> example = Example.of(new Person("Jon", "Snow"), matcher); 
repo.count(example);

This example contains two test classes to illustrate Query-by-Example with MongoOperations in MongoOperationsIntegrationTests and the usage with a Repository in UserRepositoryIntegrationTests.