public class TableImpl<R extends Record>
extends java.lang.Object
This type is for JOOQ INTERNAL USE only. Do not reference directly
| Modifier and Type | Field and Description |
|---|---|
protected Field<?>[] |
parameters |
| Constructor and Description |
|---|
TableImpl(Name name) |
TableImpl(Name name,
Schema schema) |
TableImpl(Name name,
Schema schema,
Table<R> aliased) |
TableImpl(Name name,
Schema schema,
Table<R> aliased,
Field<?>[] parameters) |
TableImpl(Name name,
Schema schema,
Table<R> aliased,
Field<?>[] parameters,
java.lang.String comment) |
TableImpl(java.lang.String name)
Deprecated.
- 3.10 - [#5996] - Use
TableImpl(Name) instead (or
re-generated your code). |
TableImpl(java.lang.String name,
Schema schema)
Deprecated.
- 3.10 - [#5996] - Use
TableImpl(Name, Schema)
instead (or re-generated your code). |
TableImpl(java.lang.String name,
Schema schema,
Table<R> aliased)
Deprecated.
- 3.10 - [#5996] - Use
TableImpl(Name, Schema, Table)
instead (or re-generated your code). |
TableImpl(java.lang.String name,
Schema schema,
Table<R> aliased,
Field<?>[] parameters)
Deprecated.
- 3.10 - [#5996] - Use
TableImpl(Name, Schema, Table, Field[])
instead (or re-generated your code). |
TableImpl(java.lang.String name,
Schema schema,
Table<R> aliased,
Field<?>[] parameters,
java.lang.String comment)
Deprecated.
- 3.10 - [#5996] - Use
TableImpl(Name, Schema, Table, Field[], String)
instead (or re-generated your code). |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(Context<?> ctx)
|
Table<R> |
as(Name as)
Subclasses may override this method to provide custom aliasing
implementations
Create an alias for this table.
|
Table<R> |
as(Name alias,
java.util.function.BiFunction<? super Field<?>,? super java.lang.Integer,? extends Name> aliasFunction)
Create an alias for this table and its fields.
|
Table<R> |
as(Name alias,
java.util.function.Function<? super Field<?>,? extends Name> aliasFunction)
Create an alias for this table and its fields.
|
Table<R> |
as(Name as,
Name... fieldAliases)
Subclasses may override this method to provide custom aliasing
implementations
Create an alias for this table and its fields.
|
Table<R> |
as(java.lang.String alias)
Create an alias for this table.
|
Table<R> |
as(java.lang.String alias,
java.util.function.BiFunction<? super Field<?>,? super java.lang.Integer,? extends java.lang.String> aliasFunction)
Create an alias for this table and its fields.
|
Table<R> |
as(java.lang.String alias,
java.util.function.Function<? super Field<?>,? extends java.lang.String> aliasFunction)
Create an alias for this table and its fields.
|
Table<R> |
as(java.lang.String alias,
java.lang.String... fieldAliases)
Create an alias for this table and its fields.
|
Table<R> |
as(Table<?> otherTable)
Create an alias for this table based on another table's name.
|
Table<R> |
as(Table<?> otherTable,
java.util.function.BiFunction<? super Field<?>,? super java.lang.Integer,? extends Field<?>> aliasFunction)
Create an alias for this table and its fields.
|
Table<R> |
as(Table<?> otherTable,
Field<?>... otherFields)
Create an alias for this table based on another table's name.
|
Table<R> |
as(Table<?> otherTable,
java.util.function.Function<? super Field<?>,? extends Field<?>> aliasFunction)
Create an alias for this table and its fields.
|
Table<R> |
asOfScn(Field<? extends java.lang.Number> scn)
Create an
SQLDialect.ORACLE flashback query clause from this
table. |
Table<R> |
asOfScn(java.lang.Number scn)
Create an
SQLDialect.ORACLE flashback query clause from this
table. |
Table<R> |
asOfTimestamp(Field<java.sql.Timestamp> timestamp)
Create an
SQLDialect.ORACLE flashback query clause from this
table. |
Table<R> |
asOfTimestamp(java.sql.Timestamp timestamp)
Create an
SQLDialect.ORACLE flashback query clause from this
table. |
Table<R> |
asTable()
The underlying table representation of this object.
|
Table<R> |
asTable(java.lang.String alias)
The underlying aliased table representation of this object.
|
Table<R> |
asTable(java.lang.String alias,
java.util.function.BiFunction<? super Field<?>,? super java.lang.Integer,? extends java.lang.String> aliasFunction)
The underlying aliased table representation of this object.
|
Table<R> |
asTable(java.lang.String alias,
java.util.function.Function<? super Field<?>,? extends java.lang.String> aliasFunction)
The underlying aliased table representation of this object.
|
Table<R> |
asTable(java.lang.String alias,
java.lang.String... fieldAliases)
The underlying aliased table representation of this object.
|
Table<R> |
at(Link link)
A table reference of this table at a given
Link. |
Table<R> |
at(Name link)
A table reference of this table at a given
Link. |
Table<R> |
at(java.lang.String link)
A table reference of this table at a given
Link. |
void |
bind(BindContext context)
Deprecated.
- 3.4.0 - [#2694] - Use
QueryPartInternal.accept(Context) instead. |
Clause[] |
clauses(Context<?> ctx)
The
Clauses that are represented by this query part. |
protected DSLContext |
create()
Internal convenience method
|
protected DSLContext |
create(Configuration configuration)
Internal convenience method
|
protected DSLContext |
create(Context<?> ctx)
Internal convenience method
|
protected <T> TableField<R,T> |
createField(java.lang.String name,
DataType<T> type)
Subclasses may call this method to create
TableField objects that
are linked to this table. |
protected <T> TableField<R,T> |
createField(java.lang.String name,
DataType<T> type,
java.lang.String comment)
Subclasses may call this method to create
TableField objects that
are linked to this table. |
protected <T,U> TableField<R,U> |
createField(java.lang.String name,
DataType<T> type,
java.lang.String comment,
Binding<T,U> binding)
Subclasses may call this method to create
TableField objects that
are linked to this table. |
protected <T,U> TableField<R,U> |
createField(java.lang.String name,
DataType<T> type,
java.lang.String comment,
Converter<T,U> converter)
Subclasses may call this method to create
TableField objects that
are linked to this table. |
protected <T,X,U> TableField<R,U> |
createField(java.lang.String name,
DataType<T> type,
java.lang.String comment,
Converter<X,U> converter,
Binding<T,X> binding)
Subclasses may call this method to create
TableField objects that
are linked to this table. |
protected static <R extends Record,T> |
createField(java.lang.String name,
DataType<T> type,
Table<R> table)
Subclasses may call this method to create
TableField objects that
are linked to this table. |
protected static <R extends Record,T> |
createField(java.lang.String name,
DataType<T> type,
Table<R> table,
java.lang.String comment)
Subclasses may call this method to create
TableField objects that
are linked to this table. |
protected static <R extends Record,T,U> |
createField(java.lang.String name,
DataType<T> type,
Table<R> table,
java.lang.String comment,
Binding<T,U> binding)
Subclasses may call this method to create
TableField objects that
are linked to this table. |
protected static <R extends Record,T,U> |
createField(java.lang.String name,
DataType<T> type,
Table<R> table,
java.lang.String comment,
Converter<T,U> converter)
Subclasses may call this method to create
TableField objects that
are linked to this table. |
protected static <R extends Record,T,X,U> |
createField(java.lang.String name,
DataType<T> type,
Table<R> table,
java.lang.String comment,
Converter<X,U> converter,
Binding<T,X> binding)
Subclasses may call this method to create
TableField objects that
are linked to this table. |
Table<Record> |
crossApply(Name name)
CROSS APPLY a table to this table. |
Table<Record> |
crossApply(SQL sql)
CROSS APPLY a table to this table. |
Table<Record> |
crossApply(java.lang.String sql)
CROSS APPLY a table to this table. |
Table<Record> |
crossApply(java.lang.String sql,
java.lang.Object... bindings)
CROSS APPLY a table to this table. |
Table<Record> |
crossApply(java.lang.String sql,
QueryPart... parts)
CROSS APPLY a table to this table. |
Table<Record> |
crossApply(TableLike<?> table)
CROSS APPLY a table to this table. |
Table<Record> |
crossJoin(Name name)
CROSS JOIN a table to this table. |
Table<Record> |
crossJoin(SQL sql)
CROSS JOIN a table to this table. |
Table<Record> |
crossJoin(java.lang.String sql)
CROSS JOIN a table to this table. |
Table<Record> |
crossJoin(java.lang.String sql,
java.lang.Object... bindings)
CROSS JOIN a table to this table. |
Table<Record> |
crossJoin(java.lang.String sql,
QueryPart... parts)
CROSS JOIN a table to this table. |
Table<Record> |
crossJoin(TableLike<?> table)
CROSS JOIN a table to this table. |
boolean |
declaresCTE()
Subclasses may override this
|
boolean |
declaresFields()
Subclasses may override this
|
boolean |
declaresTables()
Subclasses may override this
|
boolean |
declaresWindows()
Subclasses may override this
|
DivideByOnStep |
divideBy(Table<?> divisor)
Create a new
TABLE reference from this table, applying
relational division. |
Condition |
eq(Table<R> that)
Create a predicate comparing records from self-joined tables.
|
Condition |
equal(Table<R> that)
Create a predicate comparing records from self-joined tables.
|
boolean |
equals(java.lang.Object that)
Check whether this
QueryPart can be considered equal to
another QueryPart. |
<T> Field<T> |
field(Field<T> field)
Get a specific field from this table, if this table knows its field
references.
|
Field<?> |
field(int index)
Get a specific field from this table, if this table knows its field
references.
|
<T> Field<T> |
field(int index,
java.lang.Class<T> type)
Get a specific field from this table and coerce it to
type,
if this table knows its field references. |
<T> Field<T> |
field(int index,
DataType<T> dataType)
Get a specific field from this table and coerce it to
dataType, if this table knows its field references. |
Field<?> |
field(Name name)
Get a specific field from this table, if this table knows its field
references.
|
<T> Field<T> |
field(Name name,
java.lang.Class<T> type)
Get a specific field from this table and coerce it to
type,
if this table knows its field references. |
<T> Field<T> |
field(Name name,
DataType<T> dataType)
Get a specific field from this table and coerce it to
dataType, if this table knows its field references. |
Field<?> |
field(java.lang.String string)
Get a specific field from this table, if this table knows its field
references.
|
<T> Field<T> |
field(java.lang.String name,
java.lang.Class<T> type)
Get a specific field from this table and coerce it to
type,
if this table knows its field references. |
<T> Field<T> |
field(java.lang.String name,
DataType<T> dataType)
Get a specific field from this table and coerce it to
dataType, if this table knows its field references. |
Field<?>[] |
fields()
Get all fields from this table, if this table knows its field references,
or an empty array otherwise.
|
Field<?>[] |
fields(Field<?>... fields)
Get all fields from this table, providing some fields, if this table
knows its field references.
|
Field<?>[] |
fields(int... fieldIndexes)
Get all fields from this table, providing some field indexes, if this
table knows its field references.
|
Field<?>[] |
fields(Name... fieldNames)
Get all fields from this table, providing some field names, if this table
knows its field references.
|
Field<?>[] |
fields(java.lang.String... fieldNames)
Get all fields from this table, providing some field names, if this table
knows its field references.
|
Row |
fieldsRow()
Get this table's fields as a
Row, if this table knows its field
references. |
java.util.stream.Stream<Field<?>> |
fieldStream()
Get this table's fields as a
Stream, if this table knows its
field references. |
Table<R> |
forceIndex(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
forceIndexForGroupBy(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
forceIndexForJoin(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
forceIndexForOrderBy(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
R |
from(Record record)
The inverse operation of
Record.into(Table). |
TableOnStep<Record> |
fullJoin(Name name)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullJoin(SQL sql)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullJoin(java.lang.String sql)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullJoin(java.lang.String sql,
java.lang.Object... bindings)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullJoin(java.lang.String sql,
QueryPart... parts)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullJoin(TableLike<?> table)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullOuterJoin(Name name)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullOuterJoin(SQL sql)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullOuterJoin(java.lang.String sql)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullOuterJoin(java.lang.String sql,
java.lang.Object... bindings)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullOuterJoin(java.lang.String sql,
QueryPart... parts)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullOuterJoin(TableLike<?> table)
FULL OUTER JOIN a table to this table. |
boolean |
generatesCast()
Subclasses may override this
|
Catalog |
getCatalog()
Get the table catalog.
|
java.lang.String |
getComment()
The comment given to the table.
|
DataType<R> |
getDataType()
The table's record type as a UDT data type, in case the underlying
database supports table records as UDT records.
|
Identity<R,?> |
getIdentity()
Retrieve the table's
IDENTITY information, if available. |
java.util.List<Index> |
getIndexes()
Retrieve all of the table's indexes.
|
java.util.List<UniqueKey<R>> |
getKeys()
Retrieve all of the table's unique keys.
|
java.lang.String |
getName()
The name of this table.
|
UniqueKey<R> |
getPrimaryKey()
Retrieve the table's primary key
|
Name |
getQualifiedName()
The qualified name of this table.
|
TableField<R,?> |
getRecordTimestamp()
A "timestamp" field holding record timestamp information used for
optimistic locking
jOOQ supports optimistic locking in
UpdatableRecord.store() and
UpdatableRecord.delete() if
Settings.isExecuteWithOptimisticLocking() is enabled. |
java.lang.Class<? extends R> |
getRecordType()
Subclasses must override this method if they use the generic type
parameter
Record
The record type produced by this table. |
TableField<R,?> |
getRecordVersion()
A "version" field holding record version information used for optimistic
locking
jOOQ supports optimistic locking in
UpdatableRecord.store() and
UpdatableRecord.delete() if
Settings.isExecuteWithOptimisticLocking() is enabled. |
java.util.List<ForeignKey<R,?>> |
getReferences()
Get the list of
FOREIGN KEY's of this table |
<O extends Record> |
getReferencesFrom(Table<O> other)
Get a list of
FOREIGN KEY's of a specific table, referencing
a this table. |
<O extends Record> |
getReferencesTo(Table<O> other)
Get a list of
FOREIGN KEY's of this table, referencing a
specific table. |
Schema |
getSchema()
Get the table schema.
|
Name |
getUnqualifiedName()
The unqualified name of this table.
|
int |
hashCode()
Generate a hash code from this
QueryPart. |
Table<R> |
ignoreIndex(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
ignoreIndexForGroupBy(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
ignoreIndexForJoin(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
ignoreIndexForOrderBy(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
TableOnStep<Record> |
innerJoin(Name name)
INNER JOIN a table to this table. |
TableOnStep<Record> |
innerJoin(SQL sql)
INNER JOIN a table to this table. |
TableOnStep<Record> |
innerJoin(java.lang.String sql)
INNER JOIN a table to this table. |
TableOnStep<Record> |
innerJoin(java.lang.String sql,
java.lang.Object... bindings)
INNER JOIN a table to this table. |
TableOnStep<Record> |
innerJoin(java.lang.String sql,
QueryPart... parts)
INNER JOIN a table to this table. |
TableOnStep<Record> |
innerJoin(TableLike<?> table)
INNER JOIN a table to this table. |
TableOnStep<Record> |
join(Name name)
INNER JOIN a table to this table. |
TableOnStep<Record> |
join(SQL sql)
INNER JOIN a table to this table. |
TableOnStep<Record> |
join(java.lang.String sql)
INNER JOIN a table to this table. |
TableOnStep<Record> |
join(java.lang.String sql,
java.lang.Object... bindings)
INNER JOIN a table to this table. |
TableOnStep<Record> |
join(java.lang.String sql,
QueryPart... parts)
INNER JOIN a table to this table. |
TableOnStep<Record> |
join(TableLike<?> table)
INNER JOIN a table to this table. |
TableOptionalOnStep<Record> |
join(TableLike<?> table,
JoinType type)
Join a table to this table using a
JoinType
Depending on the JoinType, a subsequent
TableOnStep.on(Condition...) or
TableOnStep.using(Field...) clause is required. |
TableOnStep<R> |
leftAntiJoin(TableLike<?> table)
A synthetic
LEFT ANTI JOIN clause that translates to an
equivalent NOT EXISTS predicate. |
TablePartitionByStep<Record> |
leftJoin(Name name)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftJoin(SQL sql)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftJoin(java.lang.String sql)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftJoin(java.lang.String sql,
java.lang.Object... bindings)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftJoin(java.lang.String sql,
QueryPart... parts)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftJoin(TableLike<?> table)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftOuterJoin(Name name)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftOuterJoin(SQL sql)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftOuterJoin(java.lang.String sql)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftOuterJoin(java.lang.String sql,
java.lang.Object... bindings)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftOuterJoin(java.lang.String sql,
QueryPart... parts)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftOuterJoin(TableLike<?> table)
LEFT OUTER JOIN a table to this table. |
TableOnStep<R> |
leftSemiJoin(TableLike<?> table)
A synthetic
LEFT SEMI JOIN clause that translates to an
equivalent EXISTS predicate. |
Table<Record> |
naturalJoin(Name name)
NATURAL JOIN a table to this table. |
Table<Record> |
naturalJoin(SQL sql)
NATURAL JOIN a table to this table. |
Table<Record> |
naturalJoin(java.lang.String sql)
NATURAL JOIN a table to this table. |
Table<Record> |
naturalJoin(java.lang.String sql,
java.lang.Object... bindings)
NATURAL JOIN a table to this table. |
Table<Record> |
naturalJoin(java.lang.String sql,
QueryPart... parts)
NATURAL JOIN a table to this table. |
Table<Record> |
naturalJoin(TableLike<?> table)
NATURAL JOIN a table to this table. |
Table<Record> |
naturalLeftOuterJoin(Name name)
NATURAL LEFT OUTER JOIN a table to this table. |
Table<Record> |
naturalLeftOuterJoin(SQL sql)
NATURAL LEFT OUTER JOIN a table to this table. |
Table<Record> |
naturalLeftOuterJoin(java.lang.String sql)
NATURAL LEFT OUTER JOIN a table to this table. |
Table<Record> |
naturalLeftOuterJoin(java.lang.String sql,
java.lang.Object... bindings)
NATURAL LEFT OUTER JOIN a table to this table. |
Table<Record> |
naturalLeftOuterJoin(java.lang.String sql,
QueryPart... parts)
NATURAL LEFT OUTER JOIN a table to this table. |
Table<Record> |
naturalLeftOuterJoin(TableLike<?> table)
NATURAL LEFT OUTER JOIN a table to this table. |
Table<Record> |
naturalRightOuterJoin(Name name)
NATURAL RIGHT OUTER JOIN a table to this table. |
Table<Record> |
naturalRightOuterJoin(SQL sql)
NATURAL RIGHT OUTER JOIN a table to this table. |
Table<Record> |
naturalRightOuterJoin(java.lang.String sql)
NATURAL RIGHT OUTER JOIN a table to this table. |
Table<Record> |
naturalRightOuterJoin(java.lang.String sql,
java.lang.Object... bindings)
NATURAL RIGHT OUTER JOIN a table to this table. |
Table<Record> |
naturalRightOuterJoin(java.lang.String sql,
QueryPart... parts)
NATURAL RIGHT OUTER JOIN a table to this table. |
Table<Record> |
naturalRightOuterJoin(TableLike<?> table)
NATURAL RIGHT OUTER JOIN a table to this table. |
Condition |
ne(Table<R> that)
Create a predicate comparing records from self-non-equi-joined tables.
|
R |
newRecord()
Create a new
Record of this table's type. |
Condition |
notEqual(Table<R> that)
Create a predicate comparing records from self-non-equi-joined tables.
|
Table<Record> |
outerApply(Name name)
OUTER APPLY a table to this table. |
Table<Record> |
outerApply(SQL sql)
OUTER APPLY a table to this table. |
Table<Record> |
outerApply(java.lang.String sql)
OUTER APPLY a table to this table. |
Table<Record> |
outerApply(java.lang.String sql,
java.lang.Object... bindings)
OUTER APPLY a table to this table. |
Table<Record> |
outerApply(java.lang.String sql,
QueryPart... parts)
OUTER APPLY a table to this table. |
Table<Record> |
outerApply(TableLike<?> table)
OUTER APPLY a table to this table. |
TableOuterJoinStep<Record> |
partitionBy(java.util.Collection<? extends Field<?>> fields)
Add a
PARTITION BY clause to the left hand side of the
OUTER JOIN keywords |
TableOuterJoinStep<Record> |
partitionBy(Field<?>... fields)
Add a
PARTITION BY clause to the left hand side of the
OUTER JOIN keywords |
PivotForStep |
pivot(java.util.Collection<? extends Field<?>> aggregateFunctions)
Create a new
TABLE reference from this table, pivoting it
into another form. |
PivotForStep |
pivot(Field<?>... aggregateFunctions)
Create a new
TABLE reference from this table, pivoting it
into another form. |
RecordType<R> |
recordType()
The record type produced by this table.
|
Table<R> |
rename(Name rename) |
Table<R> |
rename(java.lang.String rename) |
TablePartitionByStep<Record> |
rightJoin(Name name)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightJoin(SQL sql)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightJoin(java.lang.String sql)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightJoin(java.lang.String sql,
java.lang.Object... bindings)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightJoin(java.lang.String sql,
QueryPart... parts)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightJoin(TableLike<?> table)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightOuterJoin(Name name)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightOuterJoin(SQL sql)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightOuterJoin(java.lang.String sql)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightOuterJoin(java.lang.String sql,
java.lang.Object... bindings)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightOuterJoin(java.lang.String sql,
QueryPart... parts)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightOuterJoin(TableLike<?> table)
RIGHT OUTER JOIN a table to this table. |
TableOptionalOnStep<Record> |
straightJoin(Name name)
STRAIGHT_JOIN a table to this table. |
TableOptionalOnStep<Record> |
straightJoin(SQL sql)
STRAIGHT_JOIN a table to this table. |
TableOptionalOnStep<Record> |
straightJoin(java.lang.String sql)
STRAIGHT_JOIN a table to this table. |
TableOptionalOnStep<Record> |
straightJoin(java.lang.String sql,
java.lang.Object... bindings)
STRAIGHT_JOIN a table to this table. |
TableOptionalOnStep<Record> |
straightJoin(java.lang.String sql,
QueryPart... parts)
STRAIGHT_JOIN a table to this table. |
TableOptionalOnStep<Record> |
straightJoin(TableLike<?> table)
STRAIGHT_JOIN a table to this table. |
void |
toSQL(RenderContext context)
Deprecated.
- 3.4.0 - [#2694] - Use
QueryPartInternal.accept(Context) instead. |
java.lang.String |
toString()
Render a SQL string representation of this
QueryPart. |
protected DataAccessException |
translate(java.lang.String sql,
java.sql.SQLException e)
Internal convenience method
|
Table<R> |
useIndex(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
useIndexForGroupBy(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
useIndexForJoin(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
useIndexForOrderBy(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
VersionsBetweenAndStep<R,java.lang.Number> |
versionsBetweenScn(Field<? extends java.lang.Number> scn)
Create an
SQLDialect.ORACLE flashback versions query clause from
this table. |
VersionsBetweenAndStep<R,java.lang.Number> |
versionsBetweenScn(java.lang.Number scn)
Create an
SQLDialect.ORACLE flashback versions query clause from
this table. |
VersionsBetweenAndStep<R,java.lang.Number> |
versionsBetweenScnMinvalue()
Create an
SQLDialect.ORACLE flashback versions query clause from
this table. |
VersionsBetweenAndStep<R,java.sql.Timestamp> |
versionsBetweenTimestamp(Field<java.sql.Timestamp> timestamp)
Create an
SQLDialect.ORACLE flashback versions query clause from
this table. |
VersionsBetweenAndStep<R,java.sql.Timestamp> |
versionsBetweenTimestamp(java.sql.Timestamp timestamp)
Create an
SQLDialect.ORACLE flashback versions query clause from
this table. |
VersionsBetweenAndStep<R,java.sql.Timestamp> |
versionsBetweenTimestampMinvalue()
Create an
SQLDialect.ORACLE flashback versions query clause from
this table. |
Table<R> |
with(java.lang.String hint)
Specify a SQL Server style table hint for query optimisation.
|
protected final Field<?>[] parameters
@Deprecated public TableImpl(java.lang.String name)
TableImpl(Name) instead (or
re-generated your code).@Deprecated
public TableImpl(java.lang.String name,
Schema schema)
TableImpl(Name, Schema)
instead (or re-generated your code).@Deprecated
public TableImpl(java.lang.String name,
Schema schema,
Table<R> aliased)
TableImpl(Name, Schema, Table)
instead (or re-generated your code).@Deprecated
public TableImpl(java.lang.String name,
Schema schema,
Table<R> aliased,
Field<?>[] parameters)
TableImpl(Name, Schema, Table, Field[])
instead (or re-generated your code).@Deprecated
public TableImpl(java.lang.String name,
Schema schema,
Table<R> aliased,
Field<?>[] parameters,
java.lang.String comment)
TableImpl(Name, Schema, Table, Field[], String)
instead (or re-generated your code).public TableImpl(Name name)
public final Clause[] clauses(Context<?> ctx)
QueryPartInternalClauses 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
clauses in interface QueryPartInternalClauses represented by this query part or
null or an empty array if this query part does not
represent a clause.public final void accept(Context<?> ctx)
QueryPartInternalpublic Table<R> as(Name as)
Create an alias for this table.
Note that the case-sensitivity of the returned table depends on
Settings.getRenderNameStyle() and the Name. By default,
table aliases are quoted, and thus case-sensitive - use
DSL.unquotedName(String...) for case-insensitive aliases.
If the argument Name.getName() is qualified, then the
Name.last() part will be used.
public Table<R> as(Name as, Name... fieldAliases)
Create an alias for this table and its fields.
Note that the case-sensitivity of the returned table depends on
Settings.getRenderNameStyle() and the Name. By default,
table aliases are quoted, and thus case-sensitive - use
DSL.unquotedName(String...) for case-insensitive aliases.
If the argument Name.getName() is qualified, then the
Name.last() part will be used.
Note, not all databases support derived column lists for their table
aliases. On the other hand, some databases do support derived column
lists, but only for derived tables. jOOQ will try to turn table
references into derived tables to make this syntax work. In other words,
the following statements are equivalent:
-- Using derived column lists to rename columns (e.g. Postgres)
SELECT t.a, t.b
FROM my_table t(a, b)
-- Nesting table references within derived tables (e.g. SQL Server)
SELECT t.a, t.b
FROM (
SELECT * FROM my_table
) t(a, b)
Other databases may not support derived column lists at all, but they do
support common table expressions. The following statements are
equivalent:
-- Using derived column lists to rename columns (e.g. Postgres)
SELECT t.a, t.b
FROM (
SELECT 1, 2
) AS t(a, b)
-- Using UNION ALL to produce column names (e.g. MySQL)
SELECT t.a, t.b
FROM (
SELECT null a, null b FROM DUAL WHERE 1 = 0
UNION ALL
SELECT 1, 2 FROM DUAL
) t
public java.lang.Class<? extends R> getRecordType()
Record
The record type produced by this table.
public boolean declaresTables()
declaresTables in interface QueryPartInternalpublic boolean equals(java.lang.Object that)
QueryPartQueryPart 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 final R from(Record record)
TableRecord.into(Table).
This method can be used in its method reference form conveniently on a
generated table, for instance, when mapping records in a stream:
DSL.using(configuration)
.fetch("select * from t")
.stream()
.map(MY_TABLE::into)
.forEach(System.out::println);
public final DataType<R> getDataType()
TablegetDataType in interface Table<R extends Record>public final RecordType<R> recordType()
TablerecordType in interface Table<R extends Record>public final R newRecord()
TableRecord of this table's type.newRecord in interface Table<R extends Record>DSLContext.newRecord(Table)public final Row fieldsRow()
TableLikeRow, if this table knows its field
references.public final java.util.stream.Stream<Field<?>> fieldStream()
TableLikeStream, if this table knows its
field references.fieldStream in interface TableLike<R extends Record>public final <T> Field<T> field(Field<T> field)
TableLikeThis will return:
null otherwise.
field in interface TableLike<R extends Record>Row.field(Field)public final Field<?> field(java.lang.String string)
TableLikefield in interface TableLike<R extends Record>Row.field(String)public final <T> Field<T> field(java.lang.String name, java.lang.Class<T> type)
TableLiketype,
if this table knows its field references.field in interface TableLike<R extends Record>Row.field(String, Class)public final <T> Field<T> field(java.lang.String name, DataType<T> dataType)
TableLikedataType, if this table knows its field references.field in interface TableLike<R extends Record>Row.field(String, DataType)public final Field<?> field(Name name)
TableLikefield in interface TableLike<R extends Record>Row.field(Name)public final <T> Field<T> field(Name name, java.lang.Class<T> type)
TableLiketype,
if this table knows its field references.field in interface TableLike<R extends Record>Row.field(Name, Class)public final <T> Field<T> field(Name name, DataType<T> dataType)
TableLikedataType, if this table knows its field references.field in interface TableLike<R extends Record>Row.field(Name, DataType)public final Field<?> field(int index)
TableLikefield in interface TableLike<R extends Record>Row.field(int)public final <T> Field<T> field(int index, java.lang.Class<T> type)
TableLiketype,
if this table knows its field references.field in interface TableLike<R extends Record>Row.field(int, Class)public final <T> Field<T> field(int index, DataType<T> dataType)
TableLikedataType, if this table knows its field references.field in interface TableLike<R extends Record>Row.field(int, DataType)public final Field<?>[] fields()
TableLikefields in interface TableLike<R extends Record>Row.fields()public final Field<?>[] fields(Field<?>... fields)
TableLikefields in interface TableLike<R extends Record>Row.fields(Field...)public final Field<?>[] fields(java.lang.String... fieldNames)
TableLikefields in interface TableLike<R extends Record>Row.fields(String...)public final Field<?>[] fields(Name... fieldNames)
TableLikefields in interface TableLike<R extends Record>Row.fields(Name...)public final Field<?>[] fields(int... fieldIndexes)
TableLikefields in interface TableLike<R extends Record>Row.fields(int...)public final Table<R> asTable()
TableLike
This method is useful for things like
SELECT * FROM (SELECT * FROM x WHERE x.a = '1') WHERE ...
public final Table<R> asTable(java.lang.String alias)
TableLikeasTable in interface TableLike<R extends Record>Table.as(String)public final Table<R> asTable(java.lang.String alias, java.lang.String... fieldAliases)
TableLikeasTable in interface TableLike<R extends Record>Table.as(String, String...)public final Table<R> asTable(java.lang.String alias, java.util.function.Function<? super Field<?>,? extends java.lang.String> aliasFunction)
TableLikeasTable in interface TableLike<R extends Record>Table.as(String, Function)public final Table<R> asTable(java.lang.String alias, java.util.function.BiFunction<? super Field<?>,? super java.lang.Integer,? extends java.lang.String> aliasFunction)
TableLikeasTable in interface TableLike<R extends Record>Table.as(String, BiFunction)public Table<R> as(java.lang.String alias)
Table
Note that the case-sensitivity of the returned table depends on
Settings.getRenderNameStyle(). By default, table aliases are
quoted, and thus case-sensitive!
public Table<R> as(java.lang.String alias, java.lang.String... fieldAliases)
Table
Note that the case-sensitivity of the returned table and columns depends
on Settings.getRenderNameStyle(). By default, table aliases are
quoted, and thus case-sensitive!
Note, not all databases support derived column lists for their table
aliases. On the other hand, some databases do support derived column
lists, but only for derived tables. jOOQ will try to turn table
references into derived tables to make this syntax work. In other words,
the following statements are equivalent:
-- Using derived column lists to rename columns (e.g. Postgres)
SELECT t.a, t.b
FROM my_table t(a, b)
-- Nesting table references within derived tables (e.g. SQL Server)
SELECT t.a, t.b
FROM (
SELECT * FROM my_table
) t(a, b)
Other databases may not support derived column lists at all, but they do
support common table expressions. The following statements are
equivalent:
-- Using derived column lists to rename columns (e.g. Postgres)
SELECT t.a, t.b
FROM (
SELECT 1, 2
) AS t(a, b)
-- Using UNION ALL to produce column names (e.g. MySQL)
SELECT t.a, t.b
FROM (
SELECT null a, null b FROM DUAL WHERE 1 = 0
UNION ALL
SELECT 1, 2 FROM DUAL
) t
public final Table<R> as(java.lang.String alias, java.util.function.Function<? super Field<?>,? extends java.lang.String> aliasFunction)
Table
This works like Table.as(String, String...), except that field aliases
are provided by a function. This is useful, for instance, to prefix all
columns with a common prefix:
MY_TABLE.as("t1", f -> "prefix_" + f.getName());
public final Table<R> as(java.lang.String alias, java.util.function.BiFunction<? super Field<?>,? super java.lang.Integer,? extends java.lang.String> aliasFunction)
Table
This works like Table.as(String, String...), except that field aliases
are provided by a function. This is useful, for instance, to prefix all
columns with a common prefix:
MY_TABLE.as("t1", (f, i) -> "column" + i);
public final Table<R> as(Name alias, java.util.function.Function<? super Field<?>,? extends Name> aliasFunction)
Table
This works like Table.as(Name, Name...), except that field aliases
are provided by a function. This is useful, for instance, to prefix all
columns with a common prefix:
MY_TABLE.as("t1", f -> "prefix_" + f.getName());
public final Table<R> as(Name alias, java.util.function.BiFunction<? super Field<?>,? super java.lang.Integer,? extends Name> aliasFunction)
Table
This works like Table.as(Name, Name...), except that field aliases
are provided by a function. This is useful, for instance, to prefix all
columns with a common prefix:
MY_TABLE.as("t1", (f, i) -> "column" + i);
public final Catalog getCatalog()
TablegetCatalog in interface Table<R extends Record>public final java.lang.String getName()
Tablepublic final Name getQualifiedName()
TablegetQualifiedName in interface Table<R extends Record>public final Name getUnqualifiedName()
TablegetUnqualifiedName in interface Table<R extends Record>public final java.lang.String getComment()
Table
If this Table is a generated table from your database, it
may provide its DDL comment through this method. All other table
expressions return the empty string "" here, never
null.
getComment in interface Table<R extends Record>public Identity<R,?> getIdentity()
IDENTITY information, if available.
With SQL:2003, the concept of IDENTITY columns was
introduced in most RDBMS. These are special kinds of columns that have
auto-increment functionality when INSERT statements are
performed.
An IDENTITY column is usually part of the
PRIMARY KEY or of a UNIQUE KEY in the table,
although in some RDBMS, this is not required. There can only be at most
one IDENTITY column.
Note: Unfortunately, this is not supported in the Oracle dialect, where identities emulated by triggers cannot be formally detected.
Subclasses should override this method
getIdentity in interface Table<R extends Record>IDENTITY information, or
null, if no such information is available.public UniqueKey<R> getPrimaryKey()
Subclasses may override this method
getPrimaryKey in interface Table<R extends Record>null for an updatable
table.public TableField<R,?> getRecordVersion()
jOOQ supports optimistic locking in UpdatableRecord.store() and
UpdatableRecord.delete() if
Settings.isExecuteWithOptimisticLocking() is enabled. Optimistic
locking is performed in a single UPDATE or
DELETE statement if tables provide a "version" or
"timestamp" field, or in two steps using an additional
SELECT .. FOR UPDATE statement otherwise.
This method is overridden in generated subclasses if their corresponding tables have been configured accordingly. A table may have both a "version" and a "timestamp" field.
Subclasses may override this method
getRecordVersion in interface Table<R extends Record>null, if this table has no
"version" field.Table.getRecordTimestamp(),
UpdatableRecord.store(),
UpdatableRecord.delete(),
Settings.isExecuteWithOptimisticLocking()public TableField<R,?> getRecordTimestamp()
jOOQ supports optimistic locking in UpdatableRecord.store() and
UpdatableRecord.delete() if
Settings.isExecuteWithOptimisticLocking() is enabled. Optimistic
locking is performed in a single UPDATE or
DELETE statement if tables provide a "version" or
"timestamp" field, or in two steps using an additional
SELECT .. FOR UPDATE statement otherwise.
This method is overridden in generated subclasses if their corresponding tables have been configured accordingly. A table may have both a "version" and a "timestamp" field.
Subclasses may override this method
getRecordTimestamp in interface Table<R extends Record>null, if this table has no
"timestamp" field.Table.getRecordVersion(),
UpdatableRecord.store(),
UpdatableRecord.delete(),
Settings.isExecuteWithOptimisticLocking()public java.util.List<Index> getIndexes()
Subclasses should override this method
getIndexes in interface Table<R extends Record>null. This method returns
an unmodifiable list.public java.util.List<UniqueKey<R>> getKeys()
Subclasses should override this method
getKeys in interface Table<R extends Record>null. This is never empty
for a Table with a Table.getPrimaryKey(). This
method returns an unmodifiable list.public final <O extends Record> java.util.List<ForeignKey<O,R>> getReferencesFrom(Table<O> other)
FOREIGN KEY's of a specific table, referencing
a this table.getReferencesFrom in interface Table<R extends Record>O - The other table's record typeother - The other table of the foreign key relationshipFOREIGN KEY's towards an this
table. This is never null. This method returns an
unmodifiable list.public java.util.List<ForeignKey<R,?>> getReferences()
FOREIGN KEY's of this table
Subclasses should override this method
getReferences in interface Table<R extends Record>FOREIGN KEY's. This is never
null.public final <O extends Record> java.util.List<ForeignKey<R,O>> getReferencesTo(Table<O> other)
FOREIGN KEY's of this table, referencing a
specific table.getReferencesTo in interface Table<R extends Record>O - The other table's record typeother - The other table of the foreign key relationshipFOREIGN KEY's towards an other table.
This is never null.protected static final <R extends Record,T> TableField<R,T> createField(java.lang.String name, DataType<T> type, Table<R> table)
TableField objects that
are linked to this table.name - The name of the field (case-sensitive!)type - The data type of the fieldprotected static final <R extends Record,T> TableField<R,T> createField(java.lang.String name, DataType<T> type, Table<R> table, java.lang.String comment)
TableField objects that
are linked to this table.name - The name of the field (case-sensitive!)type - The data type of the fieldprotected static final <R extends Record,T,U> TableField<R,U> createField(java.lang.String name, DataType<T> type, Table<R> table, java.lang.String comment, Converter<T,U> converter)
TableField objects that
are linked to this table.name - The name of the field (case-sensitive!)type - The data type of the fieldprotected static final <R extends Record,T,U> TableField<R,U> createField(java.lang.String name, DataType<T> type, Table<R> table, java.lang.String comment, Binding<T,U> binding)
TableField objects that
are linked to this table.name - The name of the field (case-sensitive!)type - The data type of the fieldprotected static final <R extends Record,T,X,U> TableField<R,U> createField(java.lang.String name, DataType<T> type, Table<R> table, java.lang.String comment, Converter<X,U> converter, Binding<T,X> binding)
TableField objects that
are linked to this table.name - The name of the field (case-sensitive!)type - The data type of the fieldprotected final <T> TableField<R,T> createField(java.lang.String name, DataType<T> type)
TableField objects that
are linked to this table.name - The name of the field (case-sensitive!)type - The data type of the fieldprotected final <T> TableField<R,T> createField(java.lang.String name, DataType<T> type, java.lang.String comment)
TableField objects that
are linked to this table.name - The name of the field (case-sensitive!)type - The data type of the fieldprotected final <T,U> TableField<R,U> createField(java.lang.String name, DataType<T> type, java.lang.String comment, Converter<T,U> converter)
TableField objects that
are linked to this table.name - The name of the field (case-sensitive!)type - The data type of the fieldprotected final <T,U> TableField<R,U> createField(java.lang.String name, DataType<T> type, java.lang.String comment, Binding<T,U> binding)
TableField objects that
are linked to this table.name - The name of the field (case-sensitive!)type - The data type of the fieldprotected final <T,X,U> TableField<R,U> createField(java.lang.String name, DataType<T> type, java.lang.String comment, Converter<X,U> converter, Binding<T,X> binding)
TableField objects that
are linked to this table.name - The name of the field (case-sensitive!)type - The data type of the fieldpublic final Condition eq(Table<R> that)
TableThis is a convenience method for self-joins, comparing complete records between tables.
For example:
MyTable a = MY_TABLE.as("a");
MyTable b = MY_TABLE.as("b");
DSL.using(configuration)
.select()
.from(a)
.join(b).on(a.eq(b));
eq in interface Table<R extends Record>Table.equal(Table)public final Condition equal(Table<R> that)
TableThis is a convenience method for self-joins, comparing complete records between tables.
For example:
MyTable a = MY_TABLE.as("a");
MyTable b = MY_TABLE.as("b");
DSL.using(configuration)
.select()
.from(a)
.join(b).on(a.equal(b));
public final Condition ne(Table<R> that)
Table
For example:
MyTable a = MY_TABLE.as("a");
MyTable b = MY_TABLE.as("b");
DSL.using(configuration)
.select()
.from(a)
.join(b).on(a.ne(b));
ne in interface Table<R extends Record>Table.notEqual(Table)public final Condition notEqual(Table<R> that)
TableThis is a convenience method for self-joins, comparing complete records between tables.
For example:
MyTable a = MY_TABLE.as("a");
MyTable b = MY_TABLE.as("b");
DSL.using(configuration)
.select()
.from(a)
.join(b).on(a.notEqual(b));
public final Table<R> useIndex(java.lang.String... indexes)
TableExample:
create.select()
.from(BOOK.as("b").useIndex("MY_INDEX")
.fetch();
useIndex in interface Table<R extends Record>public final Table<R> useIndexForJoin(java.lang.String... indexes)
TableExample:
create.select()
.from(BOOK.as("b").useIndexForJoin("MY_INDEX")
.fetch();
useIndexForJoin in interface Table<R extends Record>public final Table<R> useIndexForOrderBy(java.lang.String... indexes)
TableExample:
create.select()
.from(BOOK.as("b").useIndexForOrderBy("MY_INDEX")
.fetch();
useIndexForOrderBy in interface Table<R extends Record>public final Table<R> useIndexForGroupBy(java.lang.String... indexes)
TableExample:
create.select()
.from(BOOK.as("b").useIndexForGroupBy("MY_INDEX")
.fetch();
useIndexForGroupBy in interface Table<R extends Record>public final Table<R> ignoreIndex(java.lang.String... indexes)
TableExample:
create.select()
.from(BOOK.as("b").useIndex("MY_INDEX")
.fetch();
ignoreIndex in interface Table<R extends Record>public final Table<R> ignoreIndexForJoin(java.lang.String... indexes)
TableExample:
create.select()
.from(BOOK.as("b").useIndexForJoin("MY_INDEX")
.fetch();
ignoreIndexForJoin in interface Table<R extends Record>public final Table<R> ignoreIndexForOrderBy(java.lang.String... indexes)
TableExample:
create.select()
.from(BOOK.as("b").useIndexForOrderBy("MY_INDEX")
.fetch();
ignoreIndexForOrderBy in interface Table<R extends Record>public final Table<R> ignoreIndexForGroupBy(java.lang.String... indexes)
TableExample:
create.select()
.from(BOOK.as("b").useIndexForGroupBy("MY_INDEX")
.fetch();
ignoreIndexForGroupBy in interface Table<R extends Record>public final Table<R> forceIndex(java.lang.String... indexes)
TableExample:
create.select()
.from(BOOK.as("b").useIndex("MY_INDEX")
.fetch();
forceIndex in interface Table<R extends Record>public final Table<R> forceIndexForJoin(java.lang.String... indexes)
TableExample:
create.select()
.from(BOOK.as("b").useIndexForJoin("MY_INDEX")
.fetch();
forceIndexForJoin in interface Table<R extends Record>public final Table<R> forceIndexForOrderBy(java.lang.String... indexes)
TableExample:
create.select()
.from(BOOK.as("b").useIndexForOrderBy("MY_INDEX")
.fetch();
forceIndexForOrderBy in interface Table<R extends Record>public final Table<R> forceIndexForGroupBy(java.lang.String... indexes)
TableExample:
create.select()
.from(BOOK.as("b").useIndexForGroupBy("MY_INDEX")
.fetch();
forceIndexForGroupBy in interface Table<R extends Record>public final Table<R> as(Table<?> otherTable)
Table
Note that the case-sensitivity of the returned table depends on
Settings.getRenderNameStyle(). By default, table aliases are
quoted, and thus case-sensitive!
public final Table<R> as(Table<?> otherTable, Field<?>... otherFields)
Table
Note that the case-sensitivity of the returned table depends on
Settings.getRenderNameStyle(). By default, table aliases are
quoted, and thus case-sensitive!
public final Table<R> as(Table<?> otherTable, java.util.function.Function<? super Field<?>,? extends Field<?>> aliasFunction)
Table
This works like Table.as(Table, Field...), except that field aliases
are provided by a function. This is useful, for instance, to prefix all
columns with a common prefix:
MY_TABLE.as(MY_OTHER_TABLE, f -> MY_OTHER_TABLE.field(f));
public final Table<R> as(Table<?> otherTable, java.util.function.BiFunction<? super Field<?>,? super java.lang.Integer,? extends Field<?>> aliasFunction)
Table
This works like Table.as(Table, Field...), except that field aliases
are provided by a function. This is useful, for instance, to prefix all
columns with a common prefix:
MY_TABLE.as("t1", (f, i) -> "column" + i);
public final Table<R> with(java.lang.String hint)
TableThis makes sense only on an actual database table or view, not on other composed table sources.
Example:
create.select()
.from(BOOK.as("b").with("READUNCOMMITTED")
.fetch();
For SQLDialect.ORACLE style hints, see
SelectFromStep.hint(String) and SelectQuery.addHint(String)
with in interface Table<R extends Record>SelectFromStep.hint(String),
SelectQuery.addHint(String)public final Table<R> at(java.lang.String link)
TableLink.at in interface Table<R extends Record>DSL.link(String)public final Table<R> at(Name link)
TableLink.at in interface Table<R extends Record>DSL.link(Name)public final Table<R> at(Link link)
TableLink.public final PivotForStep pivot(Field<?>... aggregateFunctions)
TableTABLE reference from this table, pivoting it
into another form.
This has been observed to work with
SQLDialect.ORACLE11G upwardsSQLDialect.SQLSERVER (not yet officially supported)public final PivotForStep pivot(java.util.Collection<? extends Field<?>> aggregateFunctions)
TableTABLE reference from this table, pivoting it
into another form.
For more details, see Table.pivot(Field...)
pivot in interface Table<R extends Record>aggregateFunctions - The aggregate functions used for pivoting.PIVOT expressionTable.pivot(Field...)public final VersionsBetweenAndStep<R,java.lang.Number> versionsBetweenScn(java.lang.Number scn)
TableSQLDialect.ORACLE flashback versions query clause from
this table.versionsBetweenScn in interface Table<R extends Record>public final VersionsBetweenAndStep<R,java.lang.Number> versionsBetweenScn(Field<? extends java.lang.Number> scn)
TableSQLDialect.ORACLE flashback versions query clause from
this table.versionsBetweenScn in interface Table<R extends Record>public final VersionsBetweenAndStep<R,java.lang.Number> versionsBetweenScnMinvalue()
TableSQLDialect.ORACLE flashback versions query clause from
this table.versionsBetweenScnMinvalue in interface Table<R extends Record>public final VersionsBetweenAndStep<R,java.sql.Timestamp> versionsBetweenTimestamp(java.sql.Timestamp timestamp)
TableSQLDialect.ORACLE flashback versions query clause from
this table.versionsBetweenTimestamp in interface Table<R extends Record>public final VersionsBetweenAndStep<R,java.sql.Timestamp> versionsBetweenTimestamp(Field<java.sql.Timestamp> timestamp)
TableSQLDialect.ORACLE flashback versions query clause from
this table.versionsBetweenTimestamp in interface Table<R extends Record>public final VersionsBetweenAndStep<R,java.sql.Timestamp> versionsBetweenTimestampMinvalue()
TableSQLDialect.ORACLE flashback versions query clause from
this table.versionsBetweenTimestampMinvalue in interface Table<R extends Record>public final Table<R> asOfScn(java.lang.Number scn)
TableSQLDialect.ORACLE flashback query clause from this
table.public final Table<R> asOfScn(Field<? extends java.lang.Number> scn)
TableSQLDialect.ORACLE flashback query clause from this
table.public final Table<R> asOfTimestamp(java.sql.Timestamp timestamp)
TableSQLDialect.ORACLE flashback query clause from this
table.asOfTimestamp in interface Table<R extends Record>public final Table<R> asOfTimestamp(Field<java.sql.Timestamp> timestamp)
TableSQLDialect.ORACLE flashback query clause from this
table.asOfTimestamp in interface Table<R extends Record>public final DivideByOnStep divideBy(Table<?> divisor)
TableTABLE reference from this table, applying
relational division.
Relational division is the inverse of a cross join operation. The
following is an approximate definition of a relational division:
Assume the following cross join / cartesian product
C = A × B
Then it can be said that
A = C ÷ B
B = C ÷ A
With jOOQ, you can simplify using relational divisions by using the
following syntax:
C.divideBy(B).on(C.ID.equal(B.C_ID)).returning(C.TEXT)
The above roughly translates to
SELECT DISTINCT C.TEXT FROM C "c1"
WHERE NOT EXISTS (
SELECT 1 FROM B
WHERE NOT EXISTS (
SELECT 1 FROM C "c2"
WHERE "c2".TEXT = "c1".TEXT
AND "c2".ID = B.C_ID
)
)
Or in plain text: Find those TEXT values in C whose ID's correspond to
all ID's in B. Note that from the above SQL statement, it is immediately
clear that proper indexing is of the essence. Be sure to have indexes on
all columns referenced from the on(...) and
returning(...) clauses.
For more information about relational division and some nice, real-life examples, see
This has been observed to work with all dialects
public final TableOnStep<R> leftSemiJoin(TableLike<?> table)
TableLEFT SEMI JOIN clause that translates to an
equivalent EXISTS predicate.
The following two SQL snippets are semantically equivalent:
-- Using LEFT SEMI JOIN
FROM A
LEFT SEMI JOIN B
ON A.ID = B.ID
-- Using WHERE EXISTS
FROM A
WHERE EXISTS (
SELECT 1 FROM B WHERE A.ID = B.ID
)
leftSemiJoin in interface Table<R extends Record>public final TableOnStep<R> leftAntiJoin(TableLike<?> table)
TableLEFT ANTI JOIN clause that translates to an
equivalent NOT EXISTS predicate.
The following two SQL snippets are semantically equivalent:
-- Using LEFT ANTI JOIN
FROM A
LEFT ANTI JOIN B
ON A.ID = B.ID
-- Using WHERE NOT EXISTS
FROM A
WHERE NOT EXISTS (
SELECT 1 FROM B WHERE A.ID = B.ID
)
leftAntiJoin in interface Table<R extends Record>public final TableOptionalOnStep<Record> join(TableLike<?> table, JoinType type)
TableJoinType
Depending on the JoinType, a subsequent
TableOnStep.on(Condition...) or
TableOnStep.using(Field...) clause is required. If it is required
but omitted, a DSL.trueCondition(), i.e. 1 = 1
condition will be rendered
public final TableOnStep<Record> join(TableLike<?> table)
TableINNER JOIN a table to this table.
A synonym for Table.innerJoin(TableLike).
join in interface Table<R extends Record>Table.innerJoin(TableLike)public final TableOnStep<Record> join(SQL sql)
TableINNER JOIN a table to this table.
A synonym for Table.innerJoin(String).
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!
join in interface Table<R extends Record>DSL.table(SQL),
Table.innerJoin(SQL),
SQLpublic final TableOnStep<Record> join(java.lang.String sql)
TableINNER JOIN a table to this table.
A synonym for Table.innerJoin(String).
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!
join in interface Table<R extends Record>DSL.table(String),
Table.innerJoin(String),
SQLpublic final TableOnStep<Record> join(java.lang.String sql, java.lang.Object... bindings)
TableINNER JOIN a table to this table.
A synonym for Table.innerJoin(String, Object...).
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!
join in interface Table<R extends Record>DSL.table(String, Object...),
DSL.sql(String, Object...),
Table.innerJoin(String, Object...),
SQLpublic final TableOnStep<Record> join(java.lang.String sql, QueryPart... parts)
TableINNER JOIN a table to this table.
A synonym for Table.innerJoin(String, QueryPart...).
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!
join in interface Table<R extends Record>DSL.table(String, QueryPart...),
DSL.sql(String, QueryPart...),
Table.innerJoin(String, QueryPart...),
SQLpublic final TableOnStep<Record> join(Name name)
TableINNER JOIN a table to this table.
A synonym for Table.innerJoin(Name).
join in interface Table<R extends Record>DSL.table(Name),
Table.innerJoin(Name)public final TableOnStep<Record> innerJoin(TableLike<?> table)
TableINNER JOIN a table to this table.public final TableOnStep<Record> innerJoin(SQL sql)
TableINNER JOIN a table to this table.
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!
innerJoin in interface Table<R extends Record>DSL.table(SQL),
SQLpublic final TableOnStep<Record> innerJoin(java.lang.String sql)
TableINNER JOIN a table to this table.
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!
innerJoin in interface Table<R extends Record>DSL.table(String),
SQLpublic final TableOnStep<Record> innerJoin(java.lang.String sql, java.lang.Object... bindings)
TableINNER JOIN a table to this table.
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!
innerJoin in interface Table<R extends Record>DSL.table(String, Object...),
DSL.sql(String, Object...),
SQLpublic final TableOnStep<Record> innerJoin(java.lang.String sql, QueryPart... parts)
TableINNER JOIN a table to this table.
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!
innerJoin in interface Table<R extends Record>DSL.table(String, QueryPart...),
DSL.sql(String, QueryPart...),
SQLpublic final TableOnStep<Record> innerJoin(Name name)
TableINNER JOIN a table to this table.innerJoin in interface Table<R extends Record>DSL.table(Name)public TableOuterJoinStep<Record> partitionBy(Field<?>... fields)
TablePARTITION BY clause to the left hand side of the
OUTER JOIN keywordspartitionBy in interface Table<R extends Record>public TableOuterJoinStep<Record> partitionBy(java.util.Collection<? extends Field<?>> fields)
TablePARTITION BY clause to the left hand side of the
OUTER JOIN keywordspartitionBy in interface Table<R extends Record>public final TablePartitionByStep<Record> leftJoin(TableLike<?> table)
TableLEFT OUTER JOIN a table to this table.
A synonym for Table.leftOuterJoin(TableLike).
leftJoin in interface Table<R extends Record>Table.leftOuterJoin(TableLike)public final TablePartitionByStep<Record> leftJoin(SQL sql)
TableLEFT OUTER JOIN a table to this table.
A synonym for Table.leftOuterJoin(String).
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!
leftJoin in interface Table<R extends Record>DSL.table(SQL),
Table.leftOuterJoin(SQL),
SQLpublic final TablePartitionByStep<Record> leftJoin(java.lang.String sql)
TableLEFT OUTER JOIN a table to this table.
A synonym for Table.leftOuterJoin(String).
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!
leftJoin in interface Table<R extends Record>DSL.table(String),
Table.leftOuterJoin(String),
SQLpublic final TablePartitionByStep<Record> leftJoin(java.lang.String sql, java.lang.Object... bindings)
TableLEFT OUTER JOIN a table to this table.
A synonym for Table.leftOuterJoin(String, Object...).
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!
leftJoin in interface Table<R extends Record>DSL.table(String, Object...),
DSL.sql(String, Object...),
Table.leftOuterJoin(String, Object...),
SQLpublic final TablePartitionByStep<Record> leftJoin(java.lang.String sql, QueryPart... parts)
TableLEFT OUTER JOIN a table to this table.
A synonym for Table.leftOuterJoin(String, QueryPart...).
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!
leftJoin in interface Table<R extends Record>DSL.table(String, QueryPart...),
DSL.sql(String, QueryPart...),
Table.leftOuterJoin(String, QueryPart...),
SQLpublic final TablePartitionByStep<Record> leftJoin(Name name)
TableLEFT OUTER JOIN a table to this table.
A synonym for Table.leftOuterJoin(Name).
leftJoin in interface Table<R extends Record>DSL.table(Name),
Table.leftOuterJoin(Name)public final TablePartitionByStep<Record> leftOuterJoin(TableLike<?> table)
TableLEFT OUTER JOIN a table to this table.leftOuterJoin in interface Table<R extends Record>public final TablePartitionByStep<Record> leftOuterJoin(SQL sql)
TableLEFT OUTER JOIN a table to this table.
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!
leftOuterJoin in interface Table<R extends Record>DSL.table(SQL),
SQLpublic final TablePartitionByStep<Record> leftOuterJoin(java.lang.String sql)
TableLEFT OUTER JOIN a table to this table.
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!
leftOuterJoin in interface Table<R extends Record>DSL.table(String),
SQLpublic final TablePartitionByStep<Record> leftOuterJoin(java.lang.String sql, java.lang.Object... bindings)
TableLEFT OUTER JOIN a table to this table.
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!
leftOuterJoin in interface Table<R extends Record>DSL.table(String, Object...),
DSL.sql(String, Object...),
SQLpublic final TablePartitionByStep<Record> leftOuterJoin(java.lang.String sql, QueryPart... parts)
TableLEFT OUTER JOIN a table to this table.
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!
leftOuterJoin in interface Table<R extends Record>DSL.table(String, QueryPart...),
DSL.sql(String, QueryPart...),
SQLpublic final TablePartitionByStep<Record> leftOuterJoin(Name name)
TableLEFT OUTER JOIN a table to this table.leftOuterJoin in interface Table<R extends Record>DSL.table(Name),
SQLpublic final TablePartitionByStep<Record> rightJoin(TableLike<?> table)
TableRIGHT OUTER JOIN a table to this table.
A synonym for Table.rightOuterJoin(TableLike).
This is only possible where the underlying RDBMS supports it.
rightJoin in interface Table<R extends Record>Table.rightOuterJoin(TableLike)public final TablePartitionByStep<Record> rightJoin(SQL sql)
TableRIGHT OUTER JOIN a table to this table.
A synonym for Table.rightOuterJoin(String).
This is only possible where the underlying RDBMS supports it.
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!
rightJoin in interface Table<R extends Record>DSL.table(SQL),
Table.rightOuterJoin(SQL),
SQLpublic final TablePartitionByStep<Record> rightJoin(java.lang.String sql)
TableRIGHT OUTER JOIN a table to this table.
A synonym for Table.rightOuterJoin(String).
This is only possible where the underlying RDBMS supports it.
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!
rightJoin in interface Table<R extends Record>DSL.table(String),
Table.rightOuterJoin(String),
SQLpublic final TablePartitionByStep<Record> rightJoin(java.lang.String sql, java.lang.Object... bindings)
TableRIGHT OUTER JOIN a table to this table.
A synonym for Table.rightOuterJoin(String, Object...).
This is only possible where the underlying RDBMS supports it.
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!
rightJoin in interface Table<R extends Record>DSL.table(String, Object...),
DSL.sql(String, Object...),
Table.rightOuterJoin(String, Object...),
SQLpublic final TablePartitionByStep<Record> rightJoin(java.lang.String sql, QueryPart... parts)
TableRIGHT OUTER JOIN a table to this table.
A synonym for Table.rightOuterJoin(String, QueryPart...).
This is only possible where the underlying RDBMS supports it
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!
rightJoin in interface Table<R extends Record>DSL.table(String, QueryPart...),
DSL.sql(String, QueryPart...),
Table.rightOuterJoin(String, QueryPart...),
SQLpublic final TablePartitionByStep<Record> rightJoin(Name name)
TableRIGHT OUTER JOIN a table to this table.
A synonym for Table.rightOuterJoin(Name).
This is only possible where the underlying RDBMS supports it
rightJoin in interface Table<R extends Record>DSL.table(Name),
Table.rightOuterJoin(Name)public final TablePartitionByStep<Record> rightOuterJoin(TableLike<?> table)
TableRIGHT OUTER JOIN a table to this table.
This is only possible where the underlying RDBMS supports it
rightOuterJoin in interface Table<R extends Record>public final TablePartitionByStep<Record> rightOuterJoin(SQL sql)
TableRIGHT OUTER JOIN a table to this table.
This is only possible where the underlying RDBMS supports it
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!
rightOuterJoin in interface Table<R extends Record>DSL.table(SQL),
SQLpublic final TablePartitionByStep<Record> rightOuterJoin(java.lang.String sql)
TableRIGHT OUTER JOIN a table to this table.
This is only possible where the underlying RDBMS supports it
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!
rightOuterJoin in interface Table<R extends Record>DSL.table(String),
SQLpublic final TablePartitionByStep<Record> rightOuterJoin(java.lang.String sql, java.lang.Object... bindings)
TableRIGHT OUTER JOIN a table to this table.
This is only possible where the underlying RDBMS supports it
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!
rightOuterJoin in interface Table<R extends Record>DSL.table(String, Object...),
DSL.sql(String, Object...),
SQLpublic final TablePartitionByStep<Record> rightOuterJoin(java.lang.String sql, QueryPart... parts)
TableRIGHT OUTER JOIN a table to this table.
This is only possible where the underlying RDBMS supports it
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!
rightOuterJoin in interface Table<R extends Record>DSL.table(String, QueryPart...),
DSL.sql(String, QueryPart...),
SQLpublic final TablePartitionByStep<Record> rightOuterJoin(Name name)
TableRIGHT OUTER JOIN a table to this table.
This is only possible where the underlying RDBMS supports it
rightOuterJoin in interface Table<R extends Record>DSL.table(Name)public final TableOnStep<Record> fullOuterJoin(TableLike<?> table)
TableFULL OUTER JOIN a table to this table.
This is only possible where the underlying RDBMS supports it
fullOuterJoin in interface Table<R extends Record>public final TableOnStep<Record> fullOuterJoin(SQL sql)
TableFULL OUTER JOIN a table to this table.
This is only possible where the underlying RDBMS supports it
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!
fullOuterJoin in interface Table<R extends Record>DSL.table(SQL),
SQLpublic final TableOnStep<Record> fullOuterJoin(java.lang.String sql)
TableFULL OUTER JOIN a table to this table.
This is only possible where the underlying RDBMS supports it
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!
fullOuterJoin in interface Table<R extends Record>DSL.table(String),
SQLpublic final TableOnStep<Record> fullOuterJoin(java.lang.String sql, java.lang.Object... bindings)
TableFULL OUTER JOIN a table to this table.
This is only possible where the underlying RDBMS supports it
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!
fullOuterJoin in interface Table<R extends Record>DSL.table(String, Object...),
DSL.sql(String, Object...),
SQLpublic final TableOnStep<Record> fullOuterJoin(java.lang.String sql, QueryPart... parts)
TableFULL OUTER JOIN a table to this table.
This is only possible where the underlying RDBMS supports it
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!
fullOuterJoin in interface Table<R extends Record>DSL.table(String, QueryPart...),
DSL.sql(String, QueryPart...),
SQLpublic final TableOnStep<Record> fullOuterJoin(Name name)
TableFULL OUTER JOIN a table to this table.
This is only possible where the underlying RDBMS supports it
fullOuterJoin in interface Table<R extends Record>DSL.table(Name)public final TableOnStep<Record> fullJoin(TableLike<?> table)
TableFULL OUTER JOIN a table to this table.
A synonym for Table.fullOuterJoin(TableLike).
public final TableOnStep<Record> fullJoin(SQL sql)
TableFULL OUTER JOIN a table to this table.
A synonym for Table.fullOuterJoin(SQL).
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!
public final TableOnStep<Record> fullJoin(java.lang.String sql)
TableFULL OUTER JOIN a table to this table.
A synonym for Table.fullOuterJoin(String).
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!
public final TableOnStep<Record> fullJoin(java.lang.String sql, java.lang.Object... bindings)
TableFULL OUTER JOIN a table to this table.
A synonym for Table.fullOuterJoin(String, Object...).
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!
public final TableOnStep<Record> fullJoin(java.lang.String sql, QueryPart... parts)
TableFULL OUTER JOIN a table to this table.
A synonym for Table.fullOuterJoin(String, QueryPart...).
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!
public final TableOnStep<Record> fullJoin(Name name)
TableFULL OUTER JOIN a table to this table.
A synonym for Table.fullOuterJoin(Name).
public final Table<Record> crossJoin(TableLike<?> table)
TableCROSS JOIN a table to this table.
If this syntax is unavailable, it is emulated with a regular
INNER JOIN. The following two constructs are equivalent:
A cross join B
A join B on 1 = 1
public final Table<Record> crossJoin(SQL sql)
TableCROSS JOIN a table to this table.
If this syntax is unavailable, it is emulated with a regular
INNER JOIN. The following two constructs are equivalent:
A cross join B
A join B on 1 = 1
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!
crossJoin in interface Table<R extends Record>DSL.table(SQL),
SQLpublic final Table<Record> crossJoin(java.lang.String sql)
TableCROSS JOIN a table to this table.
If this syntax is unavailable, it is emulated with a regular
INNER JOIN. The following two constructs are equivalent:
A cross join B
A join B on 1 = 1
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!
crossJoin in interface Table<R extends Record>DSL.table(String),
SQLpublic final Table<Record> crossJoin(java.lang.String sql, java.lang.Object... bindings)
TableCROSS JOIN a table to this table.
If this syntax is unavailable, it is emulated with a regular
INNER JOIN. The following two constructs are equivalent:
A cross join B
A join B on 1 = 1
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!
crossJoin in interface Table<R extends Record>DSL.table(String, Object...),
DSL.sql(String, Object...),
SQLpublic final Table<Record> crossJoin(java.lang.String sql, QueryPart... parts)
TableCROSS JOIN a table to this table.
If this syntax is unavailable, it is emulated with a regular
INNER JOIN. The following two constructs are equivalent:
A cross join B
A join B on 1 = 1
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!
crossJoin in interface Table<R extends Record>DSL.table(String, QueryPart...),
DSL.sql(String, QueryPart...),
SQLpublic final Table<Record> crossJoin(Name name)
TableCROSS JOIN a table to this table.
If this syntax is unavailable, it is emulated with a regular
INNER JOIN. The following two constructs are equivalent:
A cross join B
A join B on 1 = 1
crossJoin in interface Table<R extends Record>DSL.table(Name)public final Table<Record> naturalJoin(TableLike<?> table)
TableNATURAL JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
naturalJoin in interface Table<R extends Record>public final Table<Record> naturalJoin(SQL sql)
TableNATURAL JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
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!
naturalJoin in interface Table<R extends Record>DSL.table(SQL),
SQLpublic final Table<Record> naturalJoin(java.lang.String sql)
TableNATURAL JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
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!
naturalJoin in interface Table<R extends Record>DSL.table(String),
SQLpublic final Table<Record> naturalJoin(java.lang.String sql, java.lang.Object... bindings)
TableNATURAL JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
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!
naturalJoin in interface Table<R extends Record>DSL.table(String, Object...),
DSL.sql(String, Object...),
SQLpublic final Table<Record> naturalJoin(java.lang.String sql, QueryPart... parts)
TableNATURAL JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
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!
naturalJoin in interface Table<R extends Record>DSL.table(String, QueryPart...),
DSL.sql(String, QueryPart...),
SQLpublic final Table<Record> naturalJoin(Name name)
TableNATURAL JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
naturalJoin in interface Table<R extends Record>DSL.table(Name)public final Table<Record> naturalLeftOuterJoin(TableLike<?> table)
TableNATURAL LEFT OUTER JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
naturalLeftOuterJoin in interface Table<R extends Record>public final Table<Record> naturalLeftOuterJoin(SQL sql)
TableNATURAL LEFT OUTER JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
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!
naturalLeftOuterJoin in interface Table<R extends Record>DSL.table(SQL),
SQLpublic final Table<Record> naturalLeftOuterJoin(java.lang.String sql)
TableNATURAL LEFT OUTER JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
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!
naturalLeftOuterJoin in interface Table<R extends Record>DSL.table(String),
SQLpublic final Table<Record> naturalLeftOuterJoin(java.lang.String sql, java.lang.Object... bindings)
TableNATURAL LEFT OUTER JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
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!
naturalLeftOuterJoin in interface Table<R extends Record>DSL.table(String, Object...),
DSL.sql(String, Object...),
SQLpublic final Table<Record> naturalLeftOuterJoin(java.lang.String sql, QueryPart... parts)
TableNATURAL LEFT OUTER JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
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!
naturalLeftOuterJoin in interface Table<R extends Record>DSL.table(String, QueryPart...),
DSL.sql(String, QueryPart...),
SQLpublic final Table<Record> naturalLeftOuterJoin(Name name)
TableNATURAL LEFT OUTER JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
naturalLeftOuterJoin in interface Table<R extends Record>DSL.table(Name)public final Table<Record> naturalRightOuterJoin(TableLike<?> table)
TableNATURAL RIGHT OUTER JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
naturalRightOuterJoin in interface Table<R extends Record>public final Table<Record> naturalRightOuterJoin(SQL sql)
TableNATURAL RIGHT OUTER JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
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!
naturalRightOuterJoin in interface Table<R extends Record>DSL.table(SQL),
SQLpublic final Table<Record> naturalRightOuterJoin(java.lang.String sql)
TableNATURAL RIGHT OUTER JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
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!
naturalRightOuterJoin in interface Table<R extends Record>DSL.table(String),
SQLpublic final Table<Record> naturalRightOuterJoin(java.lang.String sql, java.lang.Object... bindings)
TableNATURAL RIGHT OUTER JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
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!
naturalRightOuterJoin in interface Table<R extends Record>DSL.table(String, Object...),
DSL.sql(String, Object...),
SQLpublic final Table<Record> naturalRightOuterJoin(java.lang.String sql, QueryPart... parts)
TableNATURAL RIGHT OUTER JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
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!
naturalRightOuterJoin in interface Table<R extends Record>DSL.table(String, QueryPart...),
DSL.sql(String, QueryPart...),
SQLpublic final Table<Record> naturalRightOuterJoin(Name name)
TableNATURAL RIGHT OUTER JOIN a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
naturalRightOuterJoin in interface Table<R extends Record>DSL.table(Name)public final Table<Record> crossApply(TableLike<?> table)
TableCROSS APPLY a table to this table.crossApply in interface Table<R extends Record>public final Table<Record> crossApply(SQL sql)
TableCROSS APPLY a table to this table.
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!
crossApply in interface Table<R extends Record>DSL.table(SQL),
SQLpublic final Table<Record> crossApply(java.lang.String sql)
TableCROSS APPLY a table to this table.
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!
crossApply in interface Table<R extends Record>DSL.table(String),
SQLpublic final Table<Record> crossApply(java.lang.String sql, java.lang.Object... bindings)
TableCROSS APPLY a table to this table.
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!
crossApply in interface Table<R extends Record>DSL.table(String, Object...),
DSL.sql(String, Object...),
SQLpublic final Table<Record> crossApply(java.lang.String sql, QueryPart... parts)
TableCROSS APPLY a table to this table.
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!
crossApply in interface Table<R extends Record>DSL.table(String, QueryPart...),
DSL.sql(String, QueryPart...),
SQLpublic final Table<Record> crossApply(Name name)
TableCROSS APPLY a table to this table.crossApply in interface Table<R extends Record>DSL.table(Name)public final Table<Record> outerApply(TableLike<?> table)
TableOUTER APPLY a table to this table.outerApply in interface Table<R extends Record>public final Table<Record> outerApply(SQL sql)
TableOUTER APPLY a table to this table.
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!
outerApply in interface Table<R extends Record>DSL.table(SQL),
SQLpublic final Table<Record> outerApply(java.lang.String sql)
TableOUTER APPLY a table to this table.
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!
outerApply in interface Table<R extends Record>DSL.table(String),
SQLpublic final Table<Record> outerApply(java.lang.String sql, java.lang.Object... bindings)
TableOUTER APPLY a table to this table.
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!
outerApply in interface Table<R extends Record>DSL.table(String, Object...),
DSL.sql(String, Object...),
SQLpublic final Table<Record> outerApply(java.lang.String sql, QueryPart... parts)
TableOUTER APPLY a table to this table.
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!
outerApply in interface Table<R extends Record>DSL.table(String, QueryPart...),
DSL.sql(String, QueryPart...),
SQLpublic final Table<Record> outerApply(Name name)
TableOUTER APPLY a table to this table.outerApply in interface Table<R extends Record>DSL.table(Name)public final TableOptionalOnStep<Record> straightJoin(TableLike<?> table)
TableSTRAIGHT_JOIN a table to this table.straightJoin in interface Table<R extends Record>public final TableOptionalOnStep<Record> straightJoin(SQL sql)
TableSTRAIGHT_JOIN a table to this table.
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!
straightJoin in interface Table<R extends Record>DSL.table(SQL),
SQLpublic final TableOptionalOnStep<Record> straightJoin(java.lang.String sql)
TableSTRAIGHT_JOIN a table to this table.
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!
straightJoin in interface Table<R extends Record>DSL.table(String),
SQLpublic final TableOptionalOnStep<Record> straightJoin(java.lang.String sql, java.lang.Object... bindings)
TableSTRAIGHT_JOIN a table to this table.
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!
straightJoin in interface Table<R extends Record>DSL.table(String, Object...),
DSL.sql(String, Object...),
SQLpublic final TableOptionalOnStep<Record> straightJoin(java.lang.String sql, QueryPart... parts)
TableSTRAIGHT_JOIN a table to this table.
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!
straightJoin in interface Table<R extends Record>DSL.table(String, QueryPart...),
DSL.sql(String, QueryPart...),
SQLpublic final TableOptionalOnStep<Record> straightJoin(Name name)
TableSTRAIGHT_JOIN a table to this table.straightJoin in interface Table<R extends Record>DSL.table(Name)public int hashCode()
QueryPartQueryPart.
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.
@Deprecated public final void toSQL(RenderContext context)
QueryPartInternal.accept(Context) instead.QueryPartInternalQueryPart 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.QueryPartInternalQueryPart to a PreparedStatement
This method is for JOOQ INTERNAL USE only. Do not reference directly
bind in interface QueryPartInternalcontext - The context holding the next bind index and other information
for variable bindingDataAccessException - If something went wrong while binding a
variablepublic boolean declaresFields()
declaresFields in interface QueryPartInternalpublic boolean declaresWindows()
declaresWindows in interface QueryPartInternalpublic boolean declaresCTE()
declaresCTE in interface QueryPartInternalpublic boolean generatesCast()
generatesCast in interface QueryPartInternalpublic java.lang.String toString()
QueryPartQueryPart.
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.
protected final DSLContext create()
protected final DSLContext create(Configuration configuration)
protected final DSLContext create(Context<?> ctx)
protected final DataAccessException translate(java.lang.String sql, java.sql.SQLException e)
Copyright © 2018. All Rights Reserved.