Class TokenQueryJooq

java.lang.Object
com.valqueries.automapper.TokenQueryJooq
All Implemented Interfaces:
TokenQuery, TokenSubQuery

public class TokenQueryJooq extends Object implements TokenQuery
Jooq-based replacement for valqueries-based TokenQueryImpl, but it has issue with us using mariadb connection for mysql
  • Constructor Details

    • TokenQueryJooq

      public TokenQueryJooq(Database database, Token table)
  • Method Details

    • or

      public TokenQuery or(Consumer<TokenSubQuery> orGroup)
      Description copied from interface: TokenQuery
      Add an OR group to your query. The statements in this group will be OR-ed together.

      Example:

      
       query.or(or -> or.eq(Person::getName, "Bob").eq(Person::getAge, 42));
       
      Will result into the following SQL: `WHERE (name = 'Bob' OR age = 42)`

      Specified by:
      or in interface TokenQuery
      Specified by:
      or in interface TokenSubQuery
      Parameters:
      orGroup - uses temporary TokenSubQuery to specify statements in the OR group
      Returns:
      this query, for chaining
    • and

      public TokenQuery and(Consumer<TokenSubQuery> andGroup)
      Description copied from interface: TokenQuery
      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:

      
       query.or(or -> or.eq(Person::getName, "Alice").and(and -> and.eq(Person::getName, "Bob").eq(Person::getAge, 42)));
       
      Will result into the following SQL: `WHERE (name = 'Alice OR (name = 'Bob' AND age = 42))`.

      Specified by:
      and in interface TokenQuery
      Specified by:
      and in interface TokenSubQuery
      Parameters:
      andGroup - uses temporary TokenSubQuery to specify statements in the AND group
      Returns:
      this query, for chaining
    • eq

      public TokenQuery eq(Token field, Object value)
      Description copied from interface: TokenQuery
      Match if the value of a field equals the specified value. If you want to match null values, you have to use TokenQuery.isNull(Token).

      Example:

      
       query.eq(Token.get("name"), "Bob")
       

      This will match people with the name "Bob".

      Specified by:
      eq in interface TokenQuery
      Specified by:
      eq in interface TokenSubQuery
      Parameters:
      field - the field to match
      value - the value to match
      Returns:
      the query, for chaining
    • notEq

      public TokenQuery notEq(Token field, Object value)
      Description copied from interface: TokenQuery
      Match if the value of a field does not equal the specified value. If you want to match non-null values, you have to use TokenQuery.isNotNull(Token).

      Example:

      
       query.notEq(Token.get("name"), "Bob")
       

      This will match people whose name is not "Bob".

      Specified by:
      notEq in interface TokenQuery
      Specified by:
      notEq in interface TokenSubQuery
      Parameters:
      field - the field to match
      value - the value to match
      Returns:
      the query, for chaining
    • in

      public TokenQuery in(Token field, Collection<?> values)
      Description copied from interface: TokenQuery
      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 interface TokenQuery
      Specified by:
      in in interface TokenSubQuery
      Parameters:
      field - the field to match
      values - the values to match
      Returns:
      the query, for chaining
    • in

      public TokenQuery in(Token field, Object... values)
      Description copied from interface: TokenQuery
      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 interface TokenQuery
      Specified by:
      in in interface TokenSubQuery
      Parameters:
      field - the field to match
      values - the values to match
      Returns:
      the query, for chaining
    • like

      public TokenQuery like(Token field, String value)
      Description copied from interface: TokenQuery
      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 interface TokenQuery
      Specified by:
      like in interface TokenSubQuery
      Parameters:
      field - the field to match
      value - the pattern to match
      Returns:
      the query, for chaining
    • notLike

      public TokenQuery notLike(Token field, String value)
      Description copied from interface: TokenQuery
      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 interface TokenQuery
      Specified by:
      notLike in interface TokenSubQuery
      Parameters:
      field - the field to match
      value - the pattern to match
      Returns:
      the query, for chaining
    • gt

      public TokenQuery gt(Token field, Object value)
      Description copied from interface: TokenQuery
      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 interface TokenQuery
      Specified by:
      gt in interface TokenSubQuery
      Parameters:
      field - the field to compare
      value - the value to compare to
      Returns:
      the query, for chaining
    • gte

      public TokenQuery gte(Token field, Object value)
      Description copied from interface: TokenQuery
      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 interface TokenQuery
      Specified by:
      gte in interface TokenSubQuery
      Parameters:
      field - the field to compare
      value - the value to compare to
      Returns:
      the query, for chaining
    • lt

      public TokenQuery lt(Token field, Object value)
      Description copied from interface: TokenQuery
      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 interface TokenQuery
      Specified by:
      lt in interface TokenSubQuery
      Parameters:
      field - the field to compare
      value - the value to compare to
      Returns:
      the query, for chaining
    • lte

      public TokenQuery lte(Token field, Object value)
      Description copied from interface: TokenQuery
      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 interface TokenQuery
      Specified by:
      lte in interface TokenSubQuery
      Parameters:
      field - the field to compare
      value - the value to compare to
      Returns:
      the query, for chaining
    • isNull

      public TokenQuery isNull(Token field)
      Description copied from interface: TokenQuery
      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 interface TokenQuery
      Specified by:
      isNull in interface TokenSubQuery
      Parameters:
      field - the field to check
      Returns:
      the query, for chaining
    • isNotNull

      public TokenQuery isNotNull(Token field)
      Description copied from interface: TokenQuery
      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 interface TokenQuery
      Specified by:
      isNotNull in interface TokenSubQuery
      Parameters:
      field - the field to check
      Returns:
      the query, for chaining
    • sortAscending

      public TokenQuery sortAscending(Token field)
      Description copied from interface: TokenQuery
      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.

      Specified by:
      sortAscending in interface TokenQuery
      Parameters:
      field - the filed to sort by
      Returns:
      the query, for chaining
    • sortDescending

      public TokenQuery sortDescending(Token field)
      Description copied from interface: TokenQuery
      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.

      Specified by:
      sortDescending in interface TokenQuery
      Parameters:
      field - the filed to sort by
      Returns:
      the query, for chaining
    • limit

      public TokenQuery limit(int limit)
      Description copied from interface: TokenQuery
      Limit the results to the given number of rows.

      Example:

      
       query.limit(10)
       

      This will return the first 10 rows.

      Specified by:
      limit in interface TokenQuery
      Parameters:
      limit - the number of rows to return
      Returns:
      the query, for chaining
      See Also:
    • limit

      public TokenQuery limit(int offset, int limit)
      Description copied from interface: TokenQuery
      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.

      Specified by:
      limit in interface TokenQuery
      Parameters:
      offset - the offset to start at
      limit - the number of rows to return
      Returns:
      the query, for chaining
    • select

      public <R> List<R> select(IRowMapper<R> rowMapper)
      Description copied from interface: TokenQuery
      Select the rows matching the query.

      This is a terminal operation. As such, the query should not be reused after this method is called.

      Specified by:
      select in interface TokenQuery
      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

      public long count()
      Description copied from interface: TokenQuery
      Count the rows matching the query
      Specified by:
      count in interface TokenQuery
      Returns:
      the number of rows matching the query
    • update

      Description copied from interface: TokenQuery
      Update the rows matching the query.

      This is a terminal operation. As such, the query should not be reused after this method is called.

      Specified by:
      update in interface TokenQuery
      Parameters:
      updater - uses the TokenUpdate to specify the update operation
      Returns:
      a CrudRepository.CrudUpdateResult with the number of rows affected
    • delete

      Description copied from interface: TokenQuery
      Delete the rows matching the query.

      This is a terminal operation. As such, the query should not be reused after this method is called.

      Specified by:
      delete in interface TokenQuery
      Returns:
      a CrudRepository.CrudUpdateResult with the number of rows affected