Class Predicate.Expression

java.lang.Object
io.bitbucket.dsmoons.odk.sql.query.builder.predicate.Predicate.Expression
Enclosing class:
Predicate

public static class Predicate.Expression extends Object
Класс с методами построения предиката запроса
  • Method Summary

    Modifier and Type
    Method
    Description
    Метод добавляет для сравнения оператор ALL и запрос SELECT.
    Метод добавляет для сравнения оператор ANY и запрос SELECT.
    Deprecated.
    Используйте метод expression()
    Метод добавляет для сравнения к полю выражение (sql-функцию или комбинацию функций и т.п.).
    Метод добавляет название поля к сравнению с другим полем в предикате для оператора ON.
    Метод добавляет название поля к сравнению с другим полем в предикате для оператора ON.
    field(String f, String tableAlias)
    Метод добавляет название поля к сравнению с другим полем в предикате для оператора ON.
    Метод добавляет для сравнения к полю текст запроса AbstractQuery в скобках.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • field

      public Predicate field(String f, String tableAlias)

      Метод добавляет название поля к сравнению с другим полем в предикате для оператора ON.

      
        field("name", "t1").equalTo()
                .field("name", "t2") // данный метод
        // t1.name = t2.name
       

      Метод можно использовать для создания параметризованных запросов:

      
        // PreparedStatement
        field("name").equalTo().field("?") // name = ?
      
        // jdbcTemplate
        field("name").notEqualTo().field(":name") // name <> :name
       
      Parameters:
      f - Названия поля
      tableAlias - Псевдоним таблицы, заданный в операторе FROM или JOIN
      Returns:
      Объект Predicate для продолжения построения предиката
      Since:
      1.0.0
    • field

      public Predicate field(String f)

      Метод добавляет название поля к сравнению с другим полем в предикате для оператора ON.

      
        field("name1").equalTo()
                .field("name2") // данный метод
        // name1 = name2
       

      Метод можно использовать для создания параметризованных запросов:

      
        // PreparedStatement
        field("name").equalTo().field("?") // name = ?
      
        // jdbcTemplate
        field("name").notEqualTo().field(":name") // name <> :name
       
      Parameters:
      f - Названия поля
      Returns:
      Объект Predicate для продолжения построения предиката
      Since:
      1.0.0
    • field

      public Predicate field(Field f)

      Метод добавляет название поля к сравнению с другим полем в предикате для оператора ON.

      
        var name = field("name", "t2");
      
        //
      
        field("name", "t1").equalTo().field(name) // t1.name = t2.name
       
      Parameters:
      f - Поле
      Returns:
      Объект Predicate для продолжения построения предиката
      Since:
      1.5.0
    • query

      public Predicate query(AbstractQuery q)

      Метод добавляет для сравнения к полю текст запроса AbstractQuery в скобках.

      
        field("MyId").equalTo().query(select("id").from("table").where(...).limit(1))
        // MyId = (SELECT id FROM table WHERE ... LIMIT 1)
      
        field("MyAge").greaterThanOrEqualTo().query(select("age").from("table")).where(...).limit(1))
        // MyAge >= (SELECT age FROM table WHERE ... LIMIT 1)
       
      Parameters:
      q - Объект AbstractQuery
      Returns:
      Объект Predicate для продолжения построения предиката
      Since:
      1.2.0
    • caseExpression

      @Deprecated public Predicate caseExpression(Case c)
      Deprecated.
      Используйте метод expression()

      Метод добавляет для сравнения к полю выражение Case в скобках.

      Parameters:
      c - Объект Case
      Returns:
      Объект Predicate для продолжения построения предиката
      Since:
      1.4.0
    • expression

      public Predicate expression(Object e)

      Метод добавляет для сравнения к полю выражение (sql-функцию или комбинацию функций и т.п.).

      При необходимости использовать выражение Case с заданным в методе Case.CaseEnd.end(java.lang.String) псевдонимом и оно уже использовано в выражении SELECT и необходимо использовать псевдоним выражения в предикате, передайте в метод результат выполнения AbstractExpression.getAlias().

      Аналогично для объектов Function.

      
        field("date").greaterThanOrEqualTo().expression("NOW() - INTERVAL 1 DAY")
        // date >= NOW() - INTERVAL 1 DAY
       
      Parameters:
      e - Выражение
      Returns:
      Объект Predicate для продолжения построения предиката
      Since:
      1.3.0
    • any

      public Predicate any(SelectQuery q)

      Метод добавляет для сравнения оператор ANY и запрос SELECT.

      Parameters:
      q - Объект SelectQuery
      Returns:
      Объект Predicate для продолжения построения предиката
      Since:
      1.5.0
    • all

      public Predicate all(SelectQuery q)

      Метод добавляет для сравнения оператор ALL и запрос SELECT.

      Parameters:
      q - Объект SelectQuery
      Returns:
      Объект Predicate для продолжения построения предиката
      Since:
      1.5.0