public abstract class CustomCondition extends Object
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.
Modifier | Constructor and Description |
---|---|
protected |
CustomCondition() |
Modifier and Type | Method and Description |
---|---|
abstract void |
accept(Context<?> ctx)
Subclasses must implement this method.
|
Condition |
and(Boolean other)
Combine this condition with another one using the
Operator.AND
operator. |
Condition |
and(Condition other)
Combine this condition with another one using the
Operator.AND
operator. |
Condition |
and(Field<Boolean> other)
Combine this condition with another one using the
Operator.AND
operator. |
Condition |
and(SQL sql)
Combine this condition with another one using the
Operator.AND
operator. |
Condition |
and(String sql)
Combine this condition with another one using the
Operator.AND
operator. |
Condition |
and(String sql,
Object... bindings)
Combine this condition with another one using the
Operator.AND
operator. |
Condition |
and(String sql,
QueryPart... parts)
Combine this condition with another one using the
Operator.AND
operator. |
Condition |
andExists(Select<?> select)
Combine this condition with an EXISTS clause using the
Operator.AND operator. |
Condition |
andNot(Boolean other)
Combine this condition with a negated other one using the
Operator.AND operator. |
Condition |
andNot(Condition other)
Combine this condition with a negated other one using the
Operator.AND operator. |
Condition |
andNot(Field<Boolean> other)
Combine this condition with a negated other one using the
Operator.AND operator. |
Condition |
andNotExists(Select<?> select)
Combine this condition with a NOT EXIST clause using the
Operator.AND operator. |
void |
bind(BindContext context)
Deprecated.
- 3.4.0 - [#2694] - Use
QueryPartInternal.accept(Context) instead. |
Clause[] |
clauses(Context<?> ctx)
The
Clause s that are represented by this query part. |
protected DSLContext |
create()
Deprecated.
- 3.11.0 - [#6722] - Use
Attachable.configuration()
and Configuration.dsl() instead. |
protected DSLContext |
create(Configuration configuration)
Deprecated.
- 3.11.0 - [#6722] - Use
Attachable.configuration()
and Configuration.dsl() instead. |
protected DSLContext |
create(Context<?> ctx)
Deprecated.
- 3.11.0 - [#6722] - Use
Attachable.configuration()
and Configuration.dsl() instead. |
boolean |
declaresCTE()
Subclasses may override this
|
boolean |
declaresFields()
Subclasses may override this
|
boolean |
declaresTables()
Subclasses may override this
|
boolean |
declaresWindows()
Subclasses may override this
|
boolean |
equals(Object that)
Check whether this
QueryPart can be considered equal to
another QueryPart . |
boolean |
generatesCast()
Subclasses may override this
|
int |
hashCode()
Generate a hash code from this
QueryPart . |
Condition |
not()
Invert this condition
This is the same as calling
DSL.not(Condition) |
Condition |
or(Boolean other)
Combine this condition with another one using the
Operator.OR
operator. |
Condition |
or(Condition other)
Combine this condition with another one using the
Operator.OR
operator. |
Condition |
or(Field<Boolean> other)
Combine this condition with another one using the
Operator.OR
operator. |
Condition |
or(SQL sql)
Combine this condition with another one using the
Operator.OR
operator. |
Condition |
or(String sql)
Combine this condition with another one using the
Operator.OR
operator. |
Condition |
or(String sql,
Object... bindings)
Combine this condition with another one using the
Operator.OR
operator. |
Condition |
or(String sql,
QueryPart... parts)
Combine this condition with another one using the
Operator.OR
operator. |
Condition |
orExists(Select<?> select)
Combine this condition with an EXISTS clause using the
Operator.OR operator. |
Condition |
orNot(Boolean other)
Combine this condition with a negated other one using the
Operator.OR operator. |
Condition |
orNot(Condition other)
Combine this condition with a negated other one using the
Operator.OR operator. |
Condition |
orNot(Field<Boolean> other)
Combine this condition with a negated other one using the
Operator.OR operator. |
Condition |
orNotExists(Select<?> select)
Combine this condition with a NOT EXIST clause using the
Operator.OR operator. |
void |
toSQL(RenderContext context)
Deprecated.
- 3.4.0 - [#2694] - Use
QueryPartInternal.accept(Context) instead. |
String |
toString()
Render a SQL string representation of this
QueryPart . |
protected DataAccessException |
translate(String sql,
SQLException e)
Internal convenience method
|
public abstract void accept(Context<?> ctx)
public final Clause[] clauses(Context<?> ctx)
QueryPartInternal
Clause
s that are represented by this query part.
QueryPart
s can specify several Clause
s 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
clauses
in interface QueryPartInternal
Clause
s represented by this query part or
null
or an empty array if this query part does not
represent a clause.public final boolean declaresFields()
declaresFields
in interface QueryPartInternal
public final boolean declaresTables()
declaresTables
in interface QueryPartInternal
public final Condition and(Condition other)
Condition
Operator.AND
operator.public Condition and(Field<Boolean> other)
Condition
Operator.AND
operator.public Condition and(Boolean other)
Condition
Operator.AND
operator.public final Condition or(Condition other)
Condition
Operator.OR
operator.public final Condition or(Field<Boolean> other)
Condition
Operator.OR
operator.public final Condition or(Boolean other)
Condition
Operator.OR
operator.public final Condition and(SQL sql)
Condition
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!
and
in interface Condition
sql
- The other conditionDSL.condition(SQL)
,
SQL
public final Condition and(String sql)
Condition
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!
and
in interface Condition
sql
- The other conditionDSL.condition(String)
,
SQL
public final Condition and(String sql, Object... bindings)
Condition
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!
and
in interface Condition
sql
- The other conditionbindings
- The bindingsDSL.condition(String, Object...)
,
DSL.sql(String, Object...)
,
SQL
public final Condition and(String sql, QueryPart... parts)
Condition
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!
and
in interface Condition
sql
- The SQL clause, containing {numbered placeholders} where query
parts can be injectedparts
- The QueryPart
objects that are rendered at the
{numbered placeholder} locationsDSL.condition(String, QueryPart...)
,
DSL.sql(String, QueryPart...)
,
SQL
public final Condition or(SQL sql)
Condition
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!
or
in interface Condition
sql
- The other conditionDSL.condition(SQL)
,
SQL
public final Condition or(String sql)
Condition
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!
or
in interface Condition
sql
- The other conditionDSL.condition(String)
,
SQL
public final Condition or(String sql, Object... bindings)
Condition
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!
or
in interface Condition
sql
- The other conditionbindings
- The bindingsDSL.condition(String, Object...)
,
DSL.sql(String, Object...)
,
SQL
public final Condition or(String sql, QueryPart... parts)
Condition
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!
or
in interface Condition
sql
- The SQL clause, containing {numbered placeholders} where query
parts can be injectedparts
- The QueryPart
objects that are rendered at the
{numbered placeholder} locationsDSL.condition(String, Object...)
,
DSL.sql(String, QueryPart...)
,
SQL
public final Condition andNot(Condition other)
Condition
Operator.AND
operator.public final Condition andNot(Field<Boolean> other)
Condition
Operator.AND
operator.public final Condition andNot(Boolean other)
Condition
Operator.AND
operator.public final Condition orNot(Condition other)
Condition
Operator.OR
operator.public final Condition orNot(Field<Boolean> other)
Condition
Operator.OR
operator.public final Condition orNot(Boolean other)
Condition
Operator.OR
operator.public final Condition andExists(Select<?> select)
Condition
Operator.AND
operator.public final Condition andNotExists(Select<?> select)
Condition
Operator.AND
operator.andNotExists
in interface Condition
select
- The EXISTS's subquerypublic final Condition orExists(Select<?> select)
Condition
Operator.OR
operator.public final Condition orNotExists(Select<?> select)
Condition
Operator.OR
operator.orNotExists
in interface Condition
select
- The EXISTS's subquerypublic final Condition not()
Condition
This is the same as calling DSL.not(Condition)
@Deprecated public final void toSQL(RenderContext context)
QueryPartInternal.accept(Context)
instead.QueryPartInternal
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.toSQL
in interface QueryPartInternal
@Deprecated public final void bind(BindContext context) throws DataAccessException
QueryPartInternal.accept(Context)
instead.QueryPartInternal
QueryPart
to a PreparedStatement
This method is for JOOQ INTERNAL USE only. Do not reference directly
bind
in interface QueryPartInternal
context
- The context holding the next bind index and other information
for variable bindingDataAccessException
- If something went wrong while binding a
variablepublic boolean declaresWindows()
declaresWindows
in interface QueryPartInternal
public boolean declaresCTE()
declaresCTE
in interface QueryPartInternal
public boolean generatesCast()
generatesCast
in interface QueryPartInternal
public boolean equals(Object that)
QueryPart
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.
public int hashCode()
QueryPart
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.
public String toString()
QueryPart
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.
If you wish to gain more control over the concrete SQL rendering of this
QueryPart
, use DSLContext.renderContext()
to obtain
a configurable render context for SQL rendering.
@Deprecated protected final DSLContext create()
Attachable.configuration()
and Configuration.dsl()
instead.@Deprecated protected final DSLContext create(Configuration configuration)
Attachable.configuration()
and Configuration.dsl()
instead.@Deprecated protected final DSLContext create(Context<?> ctx)
Attachable.configuration()
and Configuration.dsl()
instead.protected final DataAccessException translate(String sql, SQLException e)
Copyright © 2019. All rights reserved.