Package org.jooq.impl

Class CustomCondition

  • All Implemented Interfaces:
    java.io.Serializable, Condition, QueryPart, QueryPartInternal

    public abstract class CustomCondition
    extends java.lang.Object
    A base class for custom Condition implementations in client code.

    Client code may provide proper Condition implementations extending this useful base class. All necessary parts of the Condition interface are already implemented. Only this method needs further implementation: accept(Context).

    Refer to that methods' Javadoc for further details about their expected behaviour.

    Author:
    Lukas Eder
    See Also:
    Serialized Form
    • Constructor Detail

      • CustomCondition

        protected CustomCondition()
    • Method Detail

      • accept

        public abstract void accept​(Context<?> ctx)
        Subclasses must implement this method.
        This QueryPart can accept a Context object in order to render a SQL string or to bind its variables.
      • clauses

        public final Clause[] clauses​(Context<?> ctx)
        Description copied from interface: QueryPartInternal
        The Clauses that are represented by this query part.

        QueryParts can specify several Clauses for which an event will be emitted before (in forward order) and after (in reverse order) visiting the the query part through Context.visit(QueryPart)

        This method is for JOOQ INTERNAL USE only. Do not reference directly

        Specified by:
        clauses in interface QueryPartInternal
        Returns:
        The Clauses represented by this query part or null or an empty array if this query part does not represent a clause.
      • and

        public final Condition and​(Condition other)
        Description copied from interface: Condition
        Combine this condition with another one using the Operator.AND operator.
        Specified by:
        and in interface Condition
        Parameters:
        other - The other condition
        Returns:
        The combined condition
      • and

        public Condition and​(Field<java.lang.Boolean> other)
        Description copied from interface: Condition
        Combine this condition with another one using the Operator.AND operator.
        Specified by:
        and in interface Condition
        Parameters:
        other - The other condition
        Returns:
        The combined condition
      • and

        public Condition and​(java.lang.Boolean other)
        Description copied from interface: Condition
        Combine this condition with another one using the Operator.AND operator.
        Specified by:
        and in interface Condition
        Parameters:
        other - The other condition
        Returns:
        The combined condition
      • or

        public final Condition or​(Condition other)
        Description copied from interface: Condition
        Combine this condition with another one using the Operator.OR operator.
        Specified by:
        or in interface Condition
        Parameters:
        other - The other condition
        Returns:
        The combined condition
      • or

        public final Condition or​(Field<java.lang.Boolean> other)
        Description copied from interface: Condition
        Combine this condition with another one using the Operator.OR operator.
        Specified by:
        or in interface Condition
        Parameters:
        other - The other condition
        Returns:
        The combined condition
      • or

        public final Condition or​(java.lang.Boolean other)
        Description copied from interface: Condition
        Combine this condition with another one using the Operator.OR operator.
        Specified by:
        or in interface Condition
        Parameters:
        other - The other condition
        Returns:
        The combined condition
      • and

        public final Condition and​(SQL sql)
        Description copied from interface: Condition
        Combine this condition with another one using the Operator.AND operator.

        NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!

        Specified by:
        and in interface Condition
        Parameters:
        sql - The other condition
        Returns:
        The combined condition
        See Also:
        DSL.condition(SQL), SQL
      • and

        public final Condition and​(java.lang.String sql)
        Description copied from interface: Condition
        Combine this condition with another one using the Operator.AND operator.

        NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!

        Specified by:
        and in interface Condition
        Parameters:
        sql - The other condition
        Returns:
        The combined condition
        See Also:
        DSL.condition(String), SQL
      • and

        public final Condition and​(java.lang.String sql,
                                   java.lang.Object... bindings)
        Description copied from interface: Condition
        Combine this condition with another one using the Operator.AND operator.

        NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!

        Specified by:
        and in interface Condition
        Parameters:
        sql - The other condition
        bindings - The bindings
        Returns:
        The combined condition
        See Also:
        DSL.condition(String, Object...), DSL.sql(String, Object...), SQL
      • and

        public final Condition and​(java.lang.String sql,
                                   QueryPart... parts)
        Description copied from interface: Condition
        Combine this condition with another one using the Operator.AND operator.

        NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!

        Specified by:
        and in interface Condition
        Parameters:
        sql - The SQL clause, containing {numbered placeholders} where query parts can be injected
        parts - The QueryPart objects that are rendered at the {numbered placeholder} locations
        Returns:
        The combined condition
        See Also:
        DSL.condition(String, QueryPart...), DSL.sql(String, QueryPart...), SQL
      • or

        public final Condition or​(SQL sql)
        Description copied from interface: Condition
        Combine this condition with another one using the Operator.OR operator.

        NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!

        Specified by:
        or in interface Condition
        Parameters:
        sql - The other condition
        Returns:
        The combined condition
        See Also:
        DSL.condition(SQL), SQL
      • or

        public final Condition or​(java.lang.String sql)
        Description copied from interface: Condition
        Combine this condition with another one using the Operator.OR operator.

        NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!

        Specified by:
        or in interface Condition
        Parameters:
        sql - The other condition
        Returns:
        The combined condition
        See Also:
        DSL.condition(String), SQL
      • or

        public final Condition or​(java.lang.String sql,
                                  java.lang.Object... bindings)
        Description copied from interface: Condition
        Combine this condition with another one using the Operator.OR operator.

        NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!

        Specified by:
        or in interface Condition
        Parameters:
        sql - The other condition
        bindings - The bindings
        Returns:
        The combined condition
        See Also:
        DSL.condition(String, Object...), DSL.sql(String, Object...), SQL
      • or

        public final Condition or​(java.lang.String sql,
                                  QueryPart... parts)
        Description copied from interface: Condition
        Combine this condition with another one using the Operator.OR operator.

        NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!

        Specified by:
        or in interface Condition
        Parameters:
        sql - The SQL clause, containing {numbered placeholders} where query parts can be injected
        parts - The QueryPart objects that are rendered at the {numbered placeholder} locations
        Returns:
        The combined condition
        See Also:
        DSL.condition(String, Object...), DSL.sql(String, QueryPart...), SQL
      • andNot

        public final Condition andNot​(Condition other)
        Description copied from interface: Condition
        Combine this condition with a negated other one using the Operator.AND operator.
        Specified by:
        andNot in interface Condition
        Parameters:
        other - The other condition
        Returns:
        The combined condition
      • andNot

        public final Condition andNot​(Field<java.lang.Boolean> other)
        Description copied from interface: Condition
        Combine this condition with a negated other one using the Operator.AND operator.
        Specified by:
        andNot in interface Condition
        Parameters:
        other - The other condition
        Returns:
        The combined condition
      • andNot

        public final Condition andNot​(java.lang.Boolean other)
        Description copied from interface: Condition
        Combine this condition with a negated other one using the Operator.AND operator.
        Specified by:
        andNot in interface Condition
        Parameters:
        other - The other condition
        Returns:
        The combined condition
      • orNot

        public final Condition orNot​(Condition other)
        Description copied from interface: Condition
        Combine this condition with a negated other one using the Operator.OR operator.
        Specified by:
        orNot in interface Condition
        Parameters:
        other - The other condition
        Returns:
        The combined condition
      • orNot

        public final Condition orNot​(Field<java.lang.Boolean> other)
        Description copied from interface: Condition
        Combine this condition with a negated other one using the Operator.OR operator.
        Specified by:
        orNot in interface Condition
        Parameters:
        other - The other condition
        Returns:
        The combined condition
      • orNot

        public final Condition orNot​(java.lang.Boolean other)
        Description copied from interface: Condition
        Combine this condition with a negated other one using the Operator.OR operator.
        Specified by:
        orNot in interface Condition
        Parameters:
        other - The other condition
        Returns:
        The combined condition
      • andExists

        public final Condition andExists​(Select<?> select)
        Description copied from interface: Condition
        Combine this condition with an EXISTS clause using the Operator.AND operator.
        Specified by:
        andExists in interface Condition
        Parameters:
        select - The EXISTS's subquery
        Returns:
        The combined condition
      • andNotExists

        public final Condition andNotExists​(Select<?> select)
        Description copied from interface: Condition
        Combine this condition with a NOT EXIST clause using the Operator.AND operator.
        Specified by:
        andNotExists in interface Condition
        Parameters:
        select - The EXISTS's subquery
        Returns:
        The combined condition
      • orExists

        public final Condition orExists​(Select<?> select)
        Description copied from interface: Condition
        Combine this condition with an EXISTS clause using the Operator.OR operator.
        Specified by:
        orExists in interface Condition
        Parameters:
        select - The EXISTS's subquery
        Returns:
        The combined condition
      • orNotExists

        public final Condition orNotExists​(Select<?> select)
        Description copied from interface: Condition
        Combine this condition with a NOT EXIST clause using the Operator.OR operator.
        Specified by:
        orNotExists in interface Condition
        Parameters:
        select - The EXISTS's subquery
        Returns:
        The combined condition
      • toSQL

        @Deprecated
        public final void toSQL​(RenderContext context)
        Deprecated.
        - 3.4.0 - [#2694] - Use QueryPartInternal.accept(Context) instead.
        Description copied from interface: QueryPartInternal
        Render this QueryPart to a SQL string contained in context.sql(). The context will contain additional information about how to render this QueryPart, e.g. whether this QueryPart should be rendered as a declaration or reference, whether this QueryPart's contained bind variables should be inlined or replaced by '?', etc.
        Specified by:
        toSQL in interface QueryPartInternal
      • equals

        public boolean equals​(java.lang.Object that)
        Description copied from interface: QueryPart
        Check whether this QueryPart can be considered equal to another QueryPart.

        In general, QueryPart equality is defined in terms of QueryPart.toString() equality. In other words, two query parts are considered equal if their rendered SQL (with inlined bind variables) is equal. This means that the two query parts do not necessarily have to be of the same type.

        Some QueryPart implementations may choose to override this behaviour for improved performance, as QueryPart.toString() is an expensive operation, if called many times.

        Specified by:
        equals in interface QueryPart
        Overrides:
        equals in class java.lang.Object
        Parameters:
        that - The other QueryPart
        Returns:
        Whether the two query parts are equal
      • hashCode

        public int hashCode()
        Description copied from interface: QueryPart
        Generate a hash code from this QueryPart.

        In general, QueryPart hash codes are the same as the hash codes generated from QueryPart.toString(). This guarantees consistent behaviour with QueryPart.equals(Object)

        Some QueryPart implementations may choose to override this behaviour for improved performance, as QueryPart.toString() is an expensive operation, if called many times.

        Specified by:
        hashCode in interface QueryPart
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        The QueryPart hash code
      • toString

        public java.lang.String toString()
        Description copied from interface: QueryPart
        Render a SQL string representation of this QueryPart.

        For improved debugging, this renders a SQL string of this QueryPart with inlined bind variables. If this QueryPart is Attachable, then the attached Configuration may be used for rendering the SQL string, including SQLDialect and Settings. Do note that most QueryPart instances are not attached to a Configuration, and thus there is no guarantee that the SQL string will make sense in the context of a specific database.

        Specified by:
        toString in interface QueryPart
        Overrides:
        toString in class java.lang.Object
        Returns:
        A SQL string representation of this QueryPart
      • translate

        protected final DataAccessException translate​(java.lang.String sql,
                                                      java.sql.SQLException e)
        Internal convenience method