Interface TokenQuery
- All Superinterfaces:
TokenSubQuery
- All Known Implementing Classes:
TokenQueryImpl
,TokenQueryJooq
ValqueriesQuery
that is not based on a specific model class. Useful for migrations.-
Method Summary
Modifier and TypeMethodDescriptionand
(Consumer<TokenSubQuery> andGroup) Add an AND group to your query.long
count()
Count the rows matching the querydelete()
Delete the rows matching the query.Match if the value of a field equals the specified value.default TokenQuery
Match if the value of a field equals the specified value.Match if the value of a field is greater than the specified value.default TokenQuery
Match if the value of a field is greater than the specified value.Match if the value of a field is greater than or equal to the specified value.default TokenQuery
Match if the value of a field is greater than or equal to the specified value.Match if the value of a field is in the specified collection of values.in
(Token field, Collection<?> values) Match if the value of a field is in the specified collection of values.default TokenQuery
Match if the value of a field is in the specified collection of values.default TokenQuery
in
(String field, Collection<?> values) Match if the value of a field is in the specified collection of values.Match if the value of a field is not null.default TokenQuery
Match if the value of a field is not null.Match if the value of a field is null.default TokenQuery
Match if the value of a field is null.Match if the value of a field matches the specified pattern.default TokenQuery
Match if the value of a field matches the specified pattern.limit
(int limit) Limit the results to the given number of rows.limit
(int offset, int limit) Limit the results to the given number of rows, starting at the given offset.Match if the value of a field is less than the specified value.default TokenQuery
Match if the value of a field is less than the specified value.Match if the value of a field is less than or equal to the specified value.default TokenQuery
Match if the value of a field is less than or equal to the specified value.Match if the value of a field does not equal the specified value.default TokenQuery
Match if the value of a field does not equal the specified value.Match if the value of a field does not match the specified pattern.default TokenQuery
Match if the value of a field does not match the specified pattern.or
(Consumer<TokenSubQuery> orGroup) Add an OR group to your query.<R> List<R>
select
(IRowMapper<R> rowMapper) Select the rows matching the query.sortAscending
(Token field) Sort the results by the given field in ascending order.default TokenQuery
sortAscending
(String field) Sort the results by the given field in ascending order.sortDescending
(Token field) Sort the results by the given field in descending order.default TokenQuery
sortDescending
(String field) Sort the results by the given field in descending order.update
(Consumer<TokenUpdate> updater) Update the rows matching the query.
-
Method Details
-
or
Add an OR group to your query. The statements in this group will be OR-ed together.Example:
Will result into the following SQL: `WHERE (name = 'Bob' OR age = 42)`query.or(or -> or.eq(Person::getName, "Bob").eq(Person::getAge, 42));
- Specified by:
or
in interfaceTokenSubQuery
- Parameters:
orGroup
- uses temporaryTokenSubQuery
to specify statements in the OR group- Returns:
- this query, for chaining
-
and
Add an AND group to your query. The statements in this group will be AND-ed together. Note that statements are AND-ed by default, this method is meant to be used inside an OR group.Example:
Will result into the following SQL: `WHERE (name = 'Alice OR (name = 'Bob' AND age = 42))`.query.or(or -> or.eq(Person::getName, "Alice").and(and -> and.eq(Person::getName, "Bob").eq(Person::getAge, 42)));
- Specified by:
and
in interfaceTokenSubQuery
- Parameters:
andGroup
- uses temporaryTokenSubQuery
to specify statements in the AND group- Returns:
- this query, for chaining
-
eq
Match if the value of a field equals the specified value. If you want to match null values, you have to useisNull(Token)
.Example:
query.eq(Token.get("name"), "Bob")
This will match people with the name "Bob".
- Specified by:
eq
in interfaceTokenSubQuery
- Parameters:
field
- the field to matchvalue
- the value to match- Returns:
- the query, for chaining
-
eq
Match if the value of a field equals the specified value. If you want to match null values, you have to useisNull(String)
.Example:
query.eq("name", "Bob")
This will match people with the name "Bob".
Note: to specify non-standard column names, use
eq(Token, Object)
withToken.literal(String)
- Specified by:
eq
in interfaceTokenSubQuery
- Parameters:
field
- the field to match, will be tokenized, for example "fullName" will reference column "full_name" for MariaDbvalue
- the value to match- Returns:
- the query, for chaining
-
notEq
Match if the value of a field does not equal the specified value. If you want to match non-null values, you have to useisNotNull(Token)
.Example:
query.notEq(Token.get("name"), "Bob")
This will match people whose name is not "Bob".
- Specified by:
notEq
in interfaceTokenSubQuery
- Parameters:
field
- the field to matchvalue
- the value to match- Returns:
- the query, for chaining
-
notEq
Match if the value of a field does not equal the specified value. If you want to match non-null values, you have to useisNotNull(String)
.Example:
query.notEq("name", "Bob")
This will match people whose name is not "Bob".
Note: to specify non-standard column names, use
notEq(Token, Object)
withToken.literal(String)
- Specified by:
notEq
in interfaceTokenSubQuery
- Parameters:
field
- the field to match, will be tokenized, for example "fullName" will reference column "full_name" for MariaDbvalue
- the value to match- Returns:
- the query, for chaining
-
in
Match if the value of a field is in the specified collection of values.Example:
query.in(Token.get("name"), List.of("Bob", "Alice"))
This will match people with the name "Bob" or "Alice".
- Specified by:
in
in interfaceTokenSubQuery
- Parameters:
field
- the field to matchvalues
- the values to match- Returns:
- the query, for chaining
-
in
Match if the value of a field is in the specified collection of values.Example:
query.in("name", List.of("Bob", "Alice"))
This will match people with the name "Bob" or "Alice".
Note: to specify non-standard column names, use
in(Token, Collection)
withToken.literal(String)
- Specified by:
in
in interfaceTokenSubQuery
- Parameters:
field
- the field to match, will be tokenized, for example "fullName" will reference column "full_name" for MariaDbvalues
- the values to match- Returns:
- the query, for chaining
-
in
Match if the value of a field is in the specified collection of values.Example:
query.in(Token.get("name"), "Bob", "Alice")
This will match people with the name "Bob" or "Alice".
- Specified by:
in
in interfaceTokenSubQuery
- Parameters:
field
- the field to matchvalues
- the values to match- Returns:
- the query, for chaining
-
in
Match if the value of a field is in the specified collection of values.Example:
query.in("name", "Bob", "Alice")
This will match people with the name "Bob" or "Alice".
Note: to specify non-standard column names, use
in(Token, Object...)
withToken.literal(String)
- Specified by:
in
in interfaceTokenSubQuery
- Parameters:
field
- the field to match, will be tokenized, for example "fullName" will reference column "full_name" for MariaDbvalues
- the values to match- Returns:
- the query, for chaining
-
like
Match if the value of a field matches the specified pattern.Example:
query.like(Token.get("name"), "%ed")
This will match people whose name ends with "ed".
- Specified by:
like
in interfaceTokenSubQuery
- Parameters:
field
- the field to matchvalue
- the pattern to match- Returns:
- the query, for chaining
-
like
Match if the value of a field matches the specified pattern.Example:
query.like("name", "%ed")
This will match people whose name ends with "ed".
Note: to specify non-standard column names, use
like(Token, String)
withToken.literal(String)
- Specified by:
like
in interfaceTokenSubQuery
- Parameters:
field
- the field to match, will be tokenized, for example "fullName" will reference column "full_name" for MariaDbvalue
- the pattern to match- Returns:
- the query, for chaining
-
notLike
Match if the value of a field does not match the specified pattern.Example:
query.notLike(Token.get("name"), "%ed")
This will match people whose name does not end with "ed".
- Specified by:
notLike
in interfaceTokenSubQuery
- Parameters:
field
- the field to matchvalue
- the pattern to match- Returns:
- the query, for chaining
-
notLike
Match if the value of a field does not match the specified pattern.Example:
query.notLike("name", "%ed")
This will match people whose name does not end with "ed".
Note: to specify non-standard column names, use
notLike(Token, String)
withToken.literal(String)
- Specified by:
notLike
in interfaceTokenSubQuery
- Parameters:
field
- the field to match, will be tokenized, for example "fullName" will reference column "full_name" for MariaDbvalue
- the pattern to match- Returns:
- the query, for chaining
-
gt
Match if the value of a field is greater than the specified value.Example:
query.gt(Token.get("age"), 18)
This will match people older than 18.
- Specified by:
gt
in interfaceTokenSubQuery
- Parameters:
field
- the field to comparevalue
- the value to compare to- Returns:
- the query, for chaining
-
gt
Match if the value of a field is greater than the specified value.Example:
query.gt("age", 18)
This will match people older than 18.
Note: to specify non-standard column names, use
gt(Token, Object)
withToken.literal(String)
- Specified by:
gt
in interfaceTokenSubQuery
- Parameters:
field
- the field to compare, will be tokenized, for example "fullName" will reference column "full_name" for MariaDbvalue
- the value to compare to- Returns:
- the query, for chaining
-
gte
Match if the value of a field is greater than or equal to the specified value.Example:
query.gte(Token.get("age"), 18)
This will match people 18 or older.
- Specified by:
gte
in interfaceTokenSubQuery
- Parameters:
field
- the field to comparevalue
- the value to compare to- Returns:
- the query, for chaining
-
gte
Match if the value of a field is greater than or equal to the specified value.Example:
query.gte("age", 18)
This will match people 18 or older.
Note: to specify non-standard column names, use
gte(Token, Object)
withToken.literal(String)
- Specified by:
gte
in interfaceTokenSubQuery
- Parameters:
field
- the field to compare, will be tokenized, for example "fullName" will reference column "full_name" for MariaDbvalue
- the value to compare to- Returns:
- the query, for chaining
-
lt
Match if the value of a field is less than the specified value.Example:
query.lt(Token.get("age"), 18)
This will match people younger than 18.
- Specified by:
lt
in interfaceTokenSubQuery
- Parameters:
field
- the field to comparevalue
- the value to compare to- Returns:
- the query, for chaining
-
lt
Match if the value of a field is less than the specified value.Example:
query.lt("age", 18)
This will match people younger than 18.
Note: to specify non-standard column names, use
lt(Token, Object)
withToken.literal(String)
- Specified by:
lt
in interfaceTokenSubQuery
- Parameters:
field
- the field to compare, will be tokenized, for example "fullName" will reference column "full_name" for MariaDbvalue
- the value to compare to- Returns:
- the query, for chaining
-
lte
Match if the value of a field is less than or equal to the specified value.Example:
query.lte(Token.get("age"), 18)
This will match people 18 or younger.
- Specified by:
lte
in interfaceTokenSubQuery
- Parameters:
field
- the field to comparevalue
- the value to compare to- Returns:
- the query, for chaining
-
lte
Match if the value of a field is less than or equal to the specified value.Example:
query.lte("age", 18)
This will match people 18 or younger.
Note: to specify non-standard column names, use
lte(Token, Object)
withToken.literal(String)
- Specified by:
lte
in interfaceTokenSubQuery
- Parameters:
field
- the field to compare, will be tokenized, for example "fullName" will reference column "full_name" for MariaDbvalue
- the value to compare to- Returns:
- the query, for chaining
-
isNull
Match if the value of a field is null.Example:
query.isNull(Token.get("email"))
This will match people whose email is null.
Note: if the model class has fields of primitive type, they won't be null, even if the database contains NULL values. In this case isNull will still match correctly based on the values in the database.
- Specified by:
isNull
in interfaceTokenSubQuery
- Parameters:
field
- the field to check- Returns:
- the query, for chaining
-
isNull
Match if the value of a field is null.Example:
query.isNull("email")
This will match people whose email is null.
Note: if the model class has fields of primitive type, they won't be null, even if the database contains NULL values. In this case isNull will still match correctly based on the values in the database.
Note: to specify non-standard column names, use
isNull(Token)
withToken.literal(String)
- Specified by:
isNull
in interfaceTokenSubQuery
- Parameters:
field
- the field to check, will be tokenized, for example "fullName" will reference column "full_name" for MariaDb- Returns:
- the query, for chaining
-
isNotNull
Match if the value of a field is not null.Example:
query.isNotNull(Token.get("email"))
This will match people whose email is not null.
Note: if the model class has fields of primitive type, they won't be null, even if the database contains NULL values. In this case isNotNull will still match correctly based on the values in the database.
- Specified by:
isNotNull
in interfaceTokenSubQuery
- Parameters:
field
- the field to check- Returns:
- the query, for chaining
-
isNotNull
Match if the value of a field is not null.Example:
query.isNotNull("email")
This will match people whose email is not null.
Note: if the model class has fields of primitive type, they won't be null, even if the database contains NULL values. In this case isNotNull will still match correctly based on the values in the database.
Note: to specify non-standard column names, use
isNotNull(Token)
withToken.literal(String)
- Specified by:
isNotNull
in interfaceTokenSubQuery
- Parameters:
field
- the field to check, will be tokenized, for example "fullName" will reference column "full_name" for MariaDb- Returns:
- the query, for chaining
-
sortAscending
Sort the results by the given field in ascending order.Example:
query.sortAscending(Person::getAge)
This will sort the results by age in ascending order.
- Parameters:
field
- the filed to sort by- Returns:
- the query, for chaining
-
sortAscending
Sort the results by the given field in ascending order.Example:
query.sortAscending("age")
This will sort the results by age in ascending order.
Note: to specify non-standard column names, use
sortAscending(Token)
withToken.literal(String)
- Parameters:
field
- the filed to sort by, will be tokenized, for example "fullName" will reference column "full_name" for MariaDb- Returns:
- the query, for chaining
-
sortDescending
Sort the results by the given field in descending order.Example:
query.sortDescending(Person::getAge)
This will sort the results by age in descending order.
- Parameters:
field
- the filed to sort by- Returns:
- the query, for chaining
-
sortDescending
Sort the results by the given field in descending order.Example:
query.sortDescending("age")
This will sort the results by age in descending order.
Note: to specify non-standard column names, use
sortDescending(Token)
withToken.literal(String)
- Parameters:
field
- the filed to sort by, will be tokenized, for example "fullName" will reference column "full_name" for MariaDb- Returns:
- the query, for chaining
-
limit
Limit the results to the given number of rows.Example:
query.limit(10)
This will return the first 10 rows.
- Parameters:
limit
- the number of rows to return- Returns:
- the query, for chaining
- See Also:
-
limit
Limit the results to the given number of rows, starting at the given offset.Offset is 0-based (the first row is 0).
Offset is inclusive, limit is the size of the returned collection.
Example:
query.limit(10, 20)
This will return rows 10, 11, 12, ..., 29.
- Parameters:
offset
- the offset to start atlimit
- the number of rows to return- Returns:
- the query, for chaining
-
select
Select the rows matching the query.This is a terminal operation. As such, the query should not be reused after this method is called.
- Type Parameters:
R
- the type of the objects returned by the mapper- Parameters:
rowMapper
- the mapper converting each row of the result into an object that will be returned- Returns:
- list of objects returned by the mapper
-
count
long count()Count the rows matching the query- Returns:
- the number of rows matching the query
-
update
Update the rows matching the query.This is a terminal operation. As such, the query should not be reused after this method is called.
- Parameters:
updater
- uses theTokenUpdate
to specify the update operation- Returns:
- a
CrudRepository.CrudUpdateResult
with the number of rows affected
-
delete
CrudRepository.CrudUpdateResult delete()Delete the rows matching the query.This is a terminal operation. As such, the query should not be reused after this method is called.
- Returns:
- a
CrudRepository.CrudUpdateResult
with the number of rows affected
-