- All Implemented Interfaces:
Serializable
,Attachable
,Named
,Qualified
,QueryPart
,QueryPartInternal
,Routine<T>
This type is for JOOQ INTERNAL USE only. Do not reference directly
- Author:
- Lukas Eder
- See Also:
-
Constructor Summary
ModifierConstructorDescriptionprotected
AbstractRoutine
(String name, Schema schema) protected
AbstractRoutine
(String name, Schema schema, DataType<T> type) protected
protected
protected
AbstractRoutine
(String name, Schema schema, DataType<X> type, Converter<Y, T> converter, Binding<X, Y> binding) protected
AbstractRoutine
(String name, Schema schema, Package pkg) protected
protected
protected
AbstractRoutine
(String name, Schema schema, Package pkg, DataType<X> type, Converter<X, T> converter) protected
AbstractRoutine
(String name, Schema schema, Package pkg, DataType<X> type, Converter<Y, T> converter, Binding<X, Y> binding) -
Method Summary
Modifier and TypeMethodDescriptionfinal Name
$name()
Experimental query object model accessor method, see alsoQOM
.default QueryPart
Traverse aQueryPart
hierarchy and recursively replace its elements by alternatives.final Schema
$schema()
Experimental query object model accessor method, see alsoQOM
.default <R> R
final void
protected final void
addInOutParameter
(Parameter<?> parameter) protected final void
addInParameter
(Parameter<?> parameter) protected final void
addOutParameter
(Parameter<?> parameter) final AggregateFunction<T>
asField()
final void
Attach this object to a newConfiguration
.final Clause[]
TheClause
s that are represented by this query part.final Configuration
protected final DSLContext
create()
Deprecated.protected final DSLContext
create
(Configuration configuration) Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.protected final DSLContext
Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.protected static final <T> Parameter<T>
createParameter
(String name, DataType<T> type) Deprecated.- Please, re-generate your routine code.protected static final <T> Parameter<T>
createParameter
(String name, DataType<T> type, boolean isDefaulted) Deprecated.- Please, re-generate your routine code.protected static final <T> Parameter<T>
createParameter
(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed) Deprecated.- Please, re-generate your routine code.protected static final <T,
U> Parameter<U> createParameter
(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Binding<T, U> binding) Deprecated.- Please, re-generate your routine code.protected static final <T,
U> Parameter<U> createParameter
(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Converter<T, U> converter) Deprecated.- Please, re-generate your routine code.protected static final <T,
X, U> Parameter<U> createParameter
(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Converter<X, U> converter, Binding<T, X> binding) Deprecated.- Please, re-generate your routine code.protected static final <T,
U> Parameter<U> createParameter
(String name, DataType<T> type, boolean isDefaulted, Binding<T, U> binding) Deprecated.- Please, re-generate your routine code.protected static final <T,
U> Parameter<U> createParameter
(String name, DataType<T> type, boolean isDefaulted, Converter<T, U> converter) Deprecated.- Please, re-generate your routine code.protected static final <T,
X, U> Parameter<U> createParameter
(String name, DataType<T> type, boolean isDefaulted, Converter<X, U> converter, Binding<T, X> binding) Deprecated.- Please, re-generate your routine code.boolean
Subclasses may override thisboolean
Subclasses may override thisboolean
Subclasses may override thisboolean
Subclasses may override thisboolean
Subclasses may override thisfinal void
detach()
Detach this object from its currentConfiguration
.boolean
Check whether thisQueryPart
can be considered equal to anotherQueryPart
.final int
execute()
Execute the stored object on an underlying connectionfinal int
Execute the stored object using aConfiguration
objectboolean
Subclasses may override thisfinal <Z> Z
final Catalog
Get the object's catalog.final String
The comment on this object.final Comment
The comment on this object as aQueryPart
.A list of IN parameters passed to the stored procedure as argument.final <Z> Z
getInValue
(Parameter<Z> parameter) final String
getName()
The unqualified name of this object.A list of OUT parameters passed to the stored procedure as argument.final Package
The container package of this stored procedure or function.The qualified name of this object.final Results
The parameter representing this routine'sRoutine.getReturnValue()
final T
final Schema
Get the object's schema.final Name
The unqualified name of this object.final <Z> Z
int
hashCode()
Generate a hash code from thisQueryPart
.protected final boolean
protected final boolean
protected final boolean
boolean
rendersContent
(Context<?> ctx) Subclasses may override thisfinal <Z> void
Set the routine's IN value for an IN parameter.protected final void
protected final void
protected final <N extends Number>
voidprotected final void
setOverloaded
(boolean overloaded) protected final void
setPipelined
(boolean pipelined) protected final void
setPLSQLBooleanParameter
(Parameter<?> parameter) protected final void
setReturnParameter
(Parameter<T> parameter) protected final void
setSQLUsable
(boolean isSQLUsable) protected final void
setSyntheticReturnParameter
(Parameter<T> parameter) final <Z> void
Set the routine's IN value for an IN parameter.toString()
Render a SQL string representation of thisQueryPart
.protected final DataAccessException
translate
(String sql, SQLException e) Internal convenience methodMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.jooq.Named
$name, getComment, getCommentPart, getName, getQualifiedName, getUnqualifiedName
-
Constructor Details
-
AbstractRoutine
-
AbstractRoutine
-
AbstractRoutine
-
AbstractRoutine
-
AbstractRoutine
-
AbstractRoutine
-
AbstractRoutine
-
AbstractRoutine
-
AbstractRoutine
-
AbstractRoutine
-
-
Method Details
-
setNumber
-
setNumber
-
setValue
Description copied from interface:Routine
Set the routine's IN value for an IN parameter. -
set
Description copied from interface:Routine
Set the routine's IN value for an IN parameter. -
setField
-
attach
Description copied from interface:Attachable
Attach this object to a newConfiguration
.- Specified by:
attach
in interfaceAttachable
- Parameters:
c
- A configuration ornull
, if you wish to detach thisAttachable
from its previous configuration.
-
detach
public final void detach()Description copied from interface:Attachable
Detach this object from its currentConfiguration
.This is the same as calling
attach(null)
.- Specified by:
detach
in interfaceAttachable
-
configuration
Description copied from interface:Attachable
- Specified by:
configuration
in interfaceAttachable
-
execute
Description copied from interface:Routine
Execute the stored object using aConfiguration
object -
execute
public final int execute()Description copied from interface:Routine
Execute the stored object on an underlying connection -
clauses
Description copied from interface:QueryPartInternal
TheClause
s that are represented by this query part.QueryPart
s can specify severalClause
s for which an event will be emittedbefore
(in forward order) andafter
(in reverse order) visiting the the query part throughContext.visit(QueryPart)
This method is for JOOQ INTERNAL USE only. Do not reference directly
- Specified by:
clauses
in interfaceQueryPartInternal
- Returns:
- The
Clause
s represented by this query part ornull
or an empty array if this query part does not represent a clause.
-
accept
Description copied from interface:QueryPartInternal
ThisQueryPart
canaccept
aContext
object in order to render a SQL string or to bind its variables.- Specified by:
accept
in interfaceQueryPartInternal
-
getReturnValue
- Specified by:
getReturnValue
in interfaceRoutine<T>
- Returns:
- The routine's return value (if it is a function)
-
getResults
- Specified by:
getResults
in interfaceRoutine<T>
- Returns:
- The routine's results (if available)
-
getValue
-
get
-
getInValue
- Specified by:
getInValue
in interfaceRoutine<T>
- Returns:
- The routine's IN value for an IN parameter.
-
getInValues
-
getOutParameters
Description copied from interface:Routine
A list of OUT parameters passed to the stored procedure as argument. This list contains all parameters that are either OUT or INOUT in their respective order of appearance inRoutine.getParameters()
.- Specified by:
getOutParameters
in interfaceRoutine<T>
- Returns:
- The list of out parameters
- See Also:
-
getInParameters
Description copied from interface:Routine
A list of IN parameters passed to the stored procedure as argument. This list contains all parameters that are either IN or INOUT in their respective order of appearance inRoutine.getParameters()
.- Specified by:
getInParameters
in interfaceRoutine<T>
- Returns:
- The list of in parameters
- See Also:
-
getParameters
- Specified by:
getParameters
in interfaceRoutine<T>
- Returns:
- A list of parameters passed to the stored object as argument
-
getCatalog
Description copied from interface:Qualified
Get the object's catalog.- Specified by:
getCatalog
in interfaceQualified
-
getSchema
Description copied from interface:Qualified
Get the object's schema. -
getPackage
Description copied from interface:Routine
The container package of this stored procedure or function.This is only supported in the
SQLDialect.ORACLE
dialect.- Specified by:
getPackage
in interfaceRoutine<T>
- Returns:
- The container package of this object, or
null
if there is no such container.
-
getReturnParameter
Description copied from interface:Routine
The parameter representing this routine'sRoutine.getReturnValue()
- Specified by:
getReturnParameter
in interfaceRoutine<T>
- Returns:
- The return parameter or
null
if this routine doesn't have a return value. - See Also:
-
setOverloaded
protected final void setOverloaded(boolean overloaded) -
isOverloaded
protected final boolean isOverloaded() -
setSQLUsable
protected final void setSQLUsable(boolean isSQLUsable) -
isSQLUsable
protected final boolean isSQLUsable() -
setPipelined
-
isPipelined
-
addInParameter
-
addInOutParameter
-
addOutParameter
-
setReturnParameter
-
setSyntheticReturnParameter
-
setPLSQLBooleanParameter
-
asField
-
asField
-
asAggregateFunction
-
createParameter
Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createParameter
@Deprecated protected static final <T> Parameter<T> createParameter(String name, DataType<T> type, boolean isDefaulted) Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the fieldisDefaulted
- Whether the parameter is defaulted (seeParameter.isDefaulted()
-
createParameter
@Deprecated protected static final <T,U> Parameter<U> createParameter(String name, DataType<T> type, boolean isDefaulted, Converter<T, U> converter) Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the fieldisDefaulted
- Whether the parameter is defaulted (seeParameter.isDefaulted()
-
createParameter
@Deprecated protected static final <T,U> Parameter<U> createParameter(String name, DataType<T> type, boolean isDefaulted, Binding<T, U> binding) Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the fieldisDefaulted
- Whether the parameter is defaulted (seeParameter.isDefaulted()
-
createParameter
@Deprecated protected static final <T,X, Parameter<U> createParameterU> (String name, DataType<T> type, boolean isDefaulted, Converter<X, U> converter, Binding<T, X> binding) Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the fieldisDefaulted
- Whether the parameter is defaulted (seeParameter.isDefaulted()
-
createParameter
@Deprecated protected static final <T> Parameter<T> createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed) Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the fieldisDefaulted
- Whether the parameter is defaulted (seeParameter.isDefaulted()
isUnnamed
- Whether the parameter is unnamed (seeParameter.isUnnamed()
.
-
createParameter
@Deprecated protected static final <T,U> Parameter<U> createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Converter<T, U> converter) Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the fieldisDefaulted
- Whether the parameter is defaulted (seeParameter.isDefaulted()
isUnnamed
- Whether the parameter is unnamed (seeParameter.isUnnamed()
.
-
createParameter
@Deprecated protected static final <T,U> Parameter<U> createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Binding<T, U> binding) Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the fieldisDefaulted
- Whether the parameter is defaulted (seeParameter.isDefaulted()
isUnnamed
- Whether the parameter is unnamed (seeParameter.isUnnamed()
.
-
createParameter
@Deprecated protected static final <T,X, Parameter<U> createParameterU> (String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Converter<X, U> converter, Binding<T, X> binding) Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the fieldisDefaulted
- Whether the parameter is defaulted (seeParameter.isDefaulted()
isUnnamed
- Whether the parameter is unnamed (seeParameter.isUnnamed()
.
-
$schema
Description copied from interface:Qualified
Experimental query object model accessor method, see alsoQOM
. Subject to change in future jOOQ versions, use at your own risk. -
$traverse
Description copied from interface:QueryPart
Traverser thisQueryPart
expression tree using a composableTraverser
, producing a result.This offers a generic way to traverse expression trees to translate the tree to arbitrary other data structures. The simplest traversal would just count all the tree elements:
int count = CUSTOMER.NAME.eq(1).$traverse(0, (i, p) -> i + 1);
The same can be achieved by translating the JDK
Collector
API to theTraverser
API usingTraversers.collecting(Collector)
.CUSTOMER.NAME.eq(1).$traverse(Traversers.collecting(Collectors.counting()));
Unlike a
Collector
, aTraverser
is optimised for tree traversal, not stream traversal:- Is not designed for parallelism
- It can
Traverser.abort()
traversal early when the result can be produced early (e.g. when runningTraversers.containing(QueryPart)
, and a result has been found). - It can decide whether to
Traverser.recurse()
into aQueryPart
subtree, or whether that is not necessary or even undesirable, e.g. to prevent entering new subquery scopes. - Unlike a Collector, which can use its
Collector.accumulator()
to accumulate each element only once, in tree traversal, it's desirable to be able to distinguish between accumulating an itemTraverser.before()
orTraverser.after()
recursing into it. This is useful e.g. to wrap each tree node in XML opening and closing tags.
This is a commercial jOOQ edition only feature.
-
$replace
Description copied from interface:QueryPart
Traverse aQueryPart
hierarchy and recursively replace its elements by alternatives.This is a commercial jOOQ edition only feature.
-
getName
Description copied from interface:Named
The unqualified name of this object. -
getQualifiedName
Description copied from interface:Named
The qualified name of this object.- Specified by:
getQualifiedName
in interfaceNamed
-
getUnqualifiedName
Description copied from interface:Named
The unqualified name of this object.- Specified by:
getUnqualifiedName
in interfaceNamed
-
getComment
Description copied from interface:Named
The comment on this object.This is the same as calling
Named.getCommentPart()
and thenComment.getComment()
.- Specified by:
getComment
in interfaceNamed
-
getCommentPart
Description copied from interface:Named
The comment on this object as aQueryPart
.- Specified by:
getCommentPart
in interfaceNamed
-
hashCode
public int hashCode()Description copied from interface:QueryPart
Generate a hash code from thisQueryPart
.In general,
QueryPart
hash codes are the same as the hash codes generated fromQueryPart.toString()
. This guarantees consistent behaviour withQueryPart.equals(Object)
Some
QueryPart
implementations may choose to override this behaviour for improved performance, asQueryPart.toString()
is an expensive operation, if called many times. -
equals
Description copied from interface:QueryPart
Check whether thisQueryPart
can be considered equal to anotherQueryPart
.In general,
QueryPart
equality is defined in terms ofQueryPart.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, asQueryPart.toString()
is an expensive operation, if called many times. -
$name
Description copied from interface:Named
Experimental query object model accessor method, see alsoQOM
. Subject to change in future jOOQ versions, use at your own risk. -
rendersContent
Subclasses may override this- Specified by:
rendersContent
in interfaceQueryPartInternal
-
declaresFields
public boolean declaresFields()Subclasses may override this- Specified by:
declaresFields
in interfaceQueryPartInternal
-
declaresTables
public boolean declaresTables()Subclasses may override this- Specified by:
declaresTables
in interfaceQueryPartInternal
-
declaresWindows
public boolean declaresWindows()Subclasses may override this- Specified by:
declaresWindows
in interfaceQueryPartInternal
-
declaresCTE
public boolean declaresCTE()Subclasses may override this- Specified by:
declaresCTE
in interfaceQueryPartInternal
-
declaresParameters
Subclasses may override this- Specified by:
declaresParameters
in interfaceQueryPartInternal
-
generatesCast
public boolean generatesCast()Subclasses may override this- Specified by:
generatesCast
in interfaceQueryPartInternal
-
toString
Description copied from interface:QueryPart
Render a SQL string representation of thisQueryPart
.For improved debugging, this renders a SQL string of this
QueryPart
with inlined bind variables. If thisQueryPart
isAttachable
, then the attachedConfiguration
may be used for rendering the SQL string, includingSQLDialect
andSettings
. Do note that mostQueryPart
instances are not attached to aConfiguration
, and thus there is no guarantee that the SQL string will make sense in the context of a specific database. -
create
Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.Internal convenience method -
create
Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.Internal convenience method -
create
Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.Internal convenience method -
translate
Internal convenience method
-
Attachable.configuration()
andConfiguration.dsl()
instead.