#160 - Add excerpts for Query by Example.
This commit is contained in:
committed by
Oliver Gierke
parent
f8bfe5c79e
commit
dc50706c27
@@ -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
|
||||
|
||||
|
||||
@@ -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`.
|
||||
|
||||
@@ -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`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user