Add example using R2DBC Query by Example.

Closes #613.
This commit is contained in:
Mark Paluch
2021-04-12 15:58:34 +02:00
parent e5238de37c
commit 162ad7af2f
7 changed files with 302 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
== Spring Data R2DBC - Query-by-Example (QBE) example
This project contains samples of Query-by-Example of Spring Data R2DBC.
=== 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 SQL 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 Repositories.
[source,java]
----
interface PersonRepository extends ReactiveCrudRepository<Person, Long>, ReactiveQueryByExampleExecutor<Person> {
}
----
[source,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 shows the usage with `PersonRepositoryIntegrationTests`.