#160 - Add excerpts for Query by Example.

This commit is contained in:
Mark Paluch
2016-03-18 11:16:17 +01:00
committed by Oliver Gierke
parent f8bfe5c79e
commit dc50706c27
3 changed files with 38 additions and 0 deletions

View File

@@ -14,6 +14,7 @@ We have separate folders for the samples of individual modules:
* `interceptors` - Example of how to enrich the repositories with AOP.
* `security` - Example of how to integrate Spring Data JPA Repositories with Spring Security.
* `multiple-datasources` - Examples of how to use Spring Data JPA with multiple `DataSource`s.
* `query-by-example` - Example project showing usage of Query by Example with MongoDB.
## Spring Data MongoDB
@@ -21,6 +22,7 @@ We have separate folders for the samples of individual modules:
* `aggregation` - Example project to showcase the MongoDB aggregation framework support.
* `text-search` - Example project showing usage of MongoDB text search feature.
* `geo-json` - Example project showing usage of [GeoJSON](http://geojson.org) with MongoDB.
* `query-by-example` - Example project showing usage of Query by Example with MongoDB.
## Spring Data REST

View File

@@ -8,4 +8,22 @@ Query by Example (QBE) is a user-friendly querying technique with a simple inter
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 JPA Repositories.
```java
public interface PersonRepository extends CrudRepository<Person, String>, QueryByExampleExecutor<Person> {
}
```
```java
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 a test class to illustrate Query-by-Example with a Repository in `UserRepositoryIntegrationTests`.

View File

@@ -8,5 +8,23 @@ Query by Example (QBE) is a user-friendly querying technique with a simple inter
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.
```java
public interface PersonRepository extends CrudRepository<Person, String>, QueryByExampleExecutor {
}
```
```java
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`.