35
r2dbc/query-by-example/README.adoc
Normal file
35
r2dbc/query-by-example/README.adoc
Normal 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`.
|
||||
|
||||
Reference in New Issue
Block a user