- All Implemented Interfaces:
Serializable
,Fields
,GroupField
,Named
,Qualified
,QueryPart
,QueryPartInternal
,RecordQualifier<R>
,SelectField<R>
,SelectFieldOrAsterisk
,Table<R>
,TableLike<R>
,Typed<R>
- Direct Known Subclasses:
CustomTable
This type is for JOOQ INTERNAL USE only. Do not reference directly
- Author:
- Lukas Eder
- See Also:
-
Field Summary
-
Constructor Summary
ConstructorDescriptionDeprecated.Deprecated.- 3.10 - [#5996] - UseTableImpl(Name, Schema)
instead (or re-generated your code).Deprecated.- 3.10 - [#5996] - UseTableImpl(Name, Schema, Table)
instead (or re-generated your code).Deprecated.- 3.10 - [#5996] - UseTableImpl(Name, Schema, Table, Field[])
instead (or re-generated your code).Deprecated.- 3.10 - [#5996] - UseTableImpl(Name, Schema, Table, Field[], String)
instead (or re-generated your code).TableImpl
(Name name, Schema schema, Table<?> child, ForeignKey<?, R> path, Table<R> aliased, Field<?>[] parameters, Comment comment) TableImpl
(Name name, Schema schema, Table<?> child, ForeignKey<?, R> path, Table<R> aliased, Field<?>[] parameters, Comment comment, TableOptions options) Deprecated.- 3.11 - [#7027] - UseTableImpl(Name, Schema, Table, Field[], Comment)
instead.TableImpl
(Name name, Schema schema, Table<R> aliased, Field<?>[] parameters, Comment comment, TableOptions options) -
Method Summary
Modifier and TypeMethodDescriptionfinal Name
$alias()
$aliased()
Experimental query object model accessor method, see alsoQOM
.final Name
$name()
Experimental query object model accessor method, see alsoQOM
.final QueryPart
Traverse aQueryPart
hierarchy and recursively replace its elements by alternatives.final Schema
$schema()
Experimental query object model accessor method, see alsoQOM
.final <X> X
final void
protected boolean
aliased()
Check if this table already aliases another one.Create an alias for this table.Create an alias for this table and its fields.as
(String alias, Collection<? extends String> fieldAliases) Create an alias for this table and its fields.Create an alias for this table and its fields.Create an alias for this table and its fields.final SelectField<R>
Create an alias for this field based on another field's name.Subclasses may override this method to provide custom aliasing implementationsas
(Name alias, Collection<? extends Name> fieldAliases) Create an alias for this table and its fields.Create an alias for this table and its fields.Create an alias for this table and its fields.Subclasses may override this method to provide custom aliasing implementationsCreate an alias for this table based on another table's name.as
(Table<?> otherTable, Collection<? extends Field<?>> otherFields) Create an alias for this table based on another table's name.as
(Table<?> otherTable, BiFunction<? super Field<?>, ? super Integer, ? extends Field<?>> aliasFunction) Create an alias for this table and its fields.Create an alias for this table and its fields.Create an alias for this table based on another table's name.Turn thisTableLike
expression into aDSL.multiset(TableLike)
.asMultiset
(String alias) Turn thisTableLike
expression into aDSL.multiset(TableLike)
.asMultiset
(Field<?> alias) Turn thisTableLike
expression into aDSL.multiset(TableLike)
.asMultiset
(Name alias) Turn thisTableLike
expression into aDSL.multiset(TableLike)
.Create anSQLDialect.ORACLE
flashback query clause from this table.Create anSQLDialect.ORACLE
flashback query clause from this table.asOfTimestamp
(Timestamp timestamp) Create anSQLDialect.ORACLE
flashback query clause from this table.asOfTimestamp
(Field<Timestamp> timestamp) Create anSQLDialect.ORACLE
flashback query clause from this table.asTable()
The underlying table representation of this object.The underlying aliased table representation of this object.The underlying aliased table representation of this object.asTable
(String alias, Collection<? extends String> fieldAliases) The underlying aliased table representation of this object.The underlying aliased table representation of this object.The underlying aliased table representation of this object.The underlying aliased table representation of this object.asTable
(Name alias, Collection<? extends Name> fieldAliases) The underlying aliased table representation of this object.The underlying aliased table representation of this object.The underlying aliased table representation of this object.asTable
(Table<?> alias, Collection<? extends Field<?>> fieldAliases) The underlying aliased table representation of this object.The underlying aliased table representation of this object.final QualifiedAsterisk
asterisk()
Create a qualified asterisk expression from this table (table.*
) for use withSELECT
.A table reference of this table at a givenLink
.A table reference of this table at a givenLink
.A table reference of this table at a givenLink
.final Clause[]
TheClause
s that are represented by this query part.final <U> SelectField<U>
Apply an ad-hoc data typeConverter
to this field expression.final <U> SelectField<U>
Apply an ad-hoc data typeBinding
to this field expression.final <U> SelectField<U>
Apply an ad-hoc data typeConverter
to this field expression.final <U> SelectField<U>
convertFrom
(Class<U> toType, Function<? super R, ? extends U> from) Apply an ad-hoc read-only data typeConverter
to this field expression.final <U> SelectField<U>
convertFrom
(Function<? super R, ? extends U> from) Apply an ad-hoc read-only data typeConverter
to this field expression.final <U> SelectField<U>
Apply an ad-hoc write-only data typeConverter
to this field expression.final <U> SelectField<U>
Apply an ad-hoc write-only data typeConverter
to this field expression.protected final DSLContext
create()
Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.protected final DSLContext
create
(Configuration configuration) Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.protected final DSLContext
Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.protected final <T> TableField<R,
T> createField
(String name, DataType<T> type) Deprecated.- 3.12.0 - [#8000] - UsecreateField(Name, DataType)
instead.protected final <T> TableField<R,
T> createField
(String name, DataType<T> type, String comment) Deprecated.- 3.12.0 - [#8000] - UsecreateField(Name, DataType, String)
instead.protected final <T,
U> TableField<R, U> createField
(String name, DataType<T> type, String comment, Binding<T, U> binding) Deprecated.- 3.12.0 - [#8000] - UsecreateField(Name, DataType, String, Binding)
instead.protected final <T,
U> TableField<R, U> createField
(String name, DataType<T> type, String comment, Converter<T, U> converter) Deprecated.- 3.12.0 - [#8000] - UsecreateField(Name, DataType, String, Converter)
instead.protected final <T,
X, U> TableField<R, U> createField
(String name, DataType<T> type, String comment, Converter<X, U> converter, Binding<T, X> binding) Deprecated.- 3.12.0 - [#8000] - UsecreateField(Name, DataType, String, Converter, Binding)
instead.protected static final <R extends Record,
T>
TableField<R,T> createField
(String name, DataType<T> type, Table<R> table) Deprecated.- 3.12.0 - [#8000] - UseAbstractTable.createField(Name, DataType, Table)
instead.protected static final <R extends Record,
T>
TableField<R,T> createField
(String name, DataType<T> type, Table<R> table, String comment) Deprecated.- 3.12.0 - [#8000] - UseAbstractTable.createField(Name, DataType, Table, String)
instead.protected static final <R extends Record,
T, U>
TableField<R,U> Deprecated.- 3.12.0 - [#8000] - UseAbstractTable.createField(Name, DataType, Table, String, Binding)
instead.protected static final <R extends Record,
T, U>
TableField<R,U> createField
(String name, DataType<T> type, Table<R> table, String comment, Converter<T, U> converter) Deprecated.- 3.12.0 - [#8000] - UseAbstractTable.createField(Name, DataType, Table, String, Converter)
instead.protected static final <R extends Record,
T, X, U>
TableField<R,U> createField
(String name, DataType<T> type, Table<R> table, String comment, Converter<X, U> converter, Binding<T, X> binding) Deprecated.- 3.12.0 - [#8000] - UseAbstractTable.createField(Name, DataType, Table, String, Converter, Binding)
instead.protected final <T> TableField<R,
T> createField
(Name name, DataType<T> type) Subclasses may call this method to createTableField
objects that are linked to this table.protected final <T> TableField<R,
T> createField
(Name name, DataType<T> type, String comment) Subclasses may call this method to createTableField
objects that are linked to this table.protected final <T,
U> TableField<R, U> createField
(Name name, DataType<T> type, String comment, Binding<T, U> binding) Subclasses may call this method to createTableField
objects that are linked to this table.protected final <T,
U> TableField<R, U> createField
(Name name, DataType<T> type, String comment, Converter<T, U> converter) Subclasses may call this method to createTableField
objects that are linked to this table.protected final <T,
X, U> TableField<R, U> createField
(Name name, DataType<T> type, String comment, Converter<X, U> converter, Binding<T, X> binding) Subclasses may call this method to createTableField
objects that are linked to this table.protected static final <R extends Record,
T>
TableField<R,T> createField
(Name name, DataType<T> type, Table<R> table) Subclasses may call this method to createTableField
objects that are linked to this table.protected static final <R extends Record,
T>
TableField<R,T> createField
(Name name, DataType<T> type, Table<R> table, String comment) Subclasses may call this method to createTableField
objects that are linked to this table.protected static final <R extends Record,
T, U>
TableField<R,U> Subclasses may call this method to createTableField
objects that are linked to this table.protected static final <R extends Record,
T, U>
TableField<R,U> Subclasses may call this method to createTableField
objects that are linked to this table.protected static final <R extends Record,
T, X, U>
TableField<R,U> createField
(Name name, DataType<T> type, Table<R> table, String comment, Converter<X, U> converter, Binding<T, X> binding) Subclasses may call this method to createTableField
objects that are linked to this table.protected static final <R extends Record,
TR extends Table<R>, T, U>
TableField<R,U> createField
(Name name, DataType<T> type, TR table, String comment, Binding<T, U> binding, Generator<R, TR, U> generator) Subclasses may call this method to createTableField
objects that are linked to this table.protected static final <R extends Record,
TR extends Table<R>, T, U>
TableField<R,U> createField
(Name name, DataType<T> type, TR table, String comment, Converter<T, U> converter, Generator<R, TR, U> generator) Subclasses may call this method to createTableField
objects that are linked to this table.protected static final <R extends Record,
TR extends Table<R>, T, X, U>
TableField<R,U> createField
(Name name, DataType<T> type, TR table, String comment, Converter<X, U> converter, Binding<T, X> binding, Generator<R, TR, U> generator) Subclasses may call this method to createTableField
objects that are linked to this table.protected static final <R extends Record,
TR extends Table<R>, T>
TableField<R,T> createField
(Name name, DataType<T> type, TR table, String comment, Generator<R, TR, T> generator) Subclasses may call this method to createTableField
objects that are linked to this table.protected final <TR extends Table<R>,
T, U>
TableField<R,U> createField0
(Name name, DataType<T> type, TR table, String comment, Binding<T, U> binding, Generator<R, TR, U> generator) Subclasses may call this method to createTableField
objects that are linked to this table.protected final <TR extends Table<R>,
T, U>
TableField<R,U> createField0
(Name name, DataType<T> type, TR table, String comment, Converter<T, U> converter, Generator<R, TR, U> generator) Subclasses may call this method to createTableField
objects that are linked to this table.protected final <TR extends Table<R>,
T, X, U>
TableField<R,U> createField0
(Name name, DataType<T> type, TR table, String comment, Converter<X, U> converter, Binding<T, X> binding, Generator<R, TR, U> generator) Subclasses may call this method to createTableField
objects that are linked to this table.protected final <TR extends Table<R>,
T>
TableField<R,T> Subclasses may call this method to createTableField
objects that are linked to this table.crossApply
(String sql) CROSS APPLY
a table to this table.crossApply
(String sql, Object... bindings) CROSS APPLY
a table to this table.crossApply
(String sql, QueryPart... parts) CROSS APPLY
a table to this table.crossApply
(Name name) CROSS APPLY
a table to this table.crossApply
(SQL sql) CROSS APPLY
a table to this table.crossApply
(TableLike<?> table) CROSS APPLY
a table to this table.CROSS JOIN
a table to this table.CROSS JOIN
a table to this table.CROSS JOIN
a table to this table.CROSS JOIN
a table to this table.CROSS JOIN
a table to this table.CROSS JOIN
a table to this table.default DataType<?>
dataType
(int index) Get the field data type for a given field index, ornull
if no field is available at the index.default DataType<?>
Get the field data type for a given qualified field name, ornull
if no field is known to this type by this name.default DataType<?>
Get the field data type for a given qualified field name, ornull
if no field is known to this type by this name.default DataType<?>[]
Get an array of field data types for this type.boolean
Subclasses may override thisboolean
Subclasses may override thisboolean
Subclasses may override thisboolean
Subclasses may override thisboolean
Subclasses may override thisfinal DivideByOnStep
Create a newTABLE
reference from this table, applying relational division.final Condition
TheEQ
operator.final Condition
TheEQUAL
operator, an alias for theEQ
operator.boolean
Check whether thisQueryPart
can be considered equal to anotherQueryPart
.default Field<?>
field
(int index) Get a field known to this type by index, ornull
if no field is available at the index.default <T> Field<T>
Get a field known to this type by index coerced totype
usingField.coerce(Class)
, ornull
if no field is available at the index.default <T> Field<T>
Get a field known to this type by index coerced todataType
usingField.coerce(DataType)
, ornull
if no field is available at the index.Field<?>
Get a field known to this type by unqualified name, ornull
if no field is known to this type by this name.<T> Field<T>
Get a field known to this type by unqualified name coerced totype
usingField.coerce(Class)
, ornull
if no field is known to this type by this name.<T> Field<T>
Get a field known to this type by unqualified name coerced todataType
usingField.coerce(DataType)
, ornull
if no field is known to this type by this name.default <T> Field<T>
Get a field known to this type by field reference.Field<?>
Get a field known to this type by qualified name, ornull
if no field is known to this type by this name.<T> Field<T>
Get a field known to this type by qualified name coerced totype
usingField.coerce(Class)
, ornull
if no field is known to this type by this name.<T> Field<T>
Get a field known to this type by qualified name coerced todataType
usingField.coerce(DataType)
, ornull
if no field is known to this type by this name.final Field<?>[]
fields()
Get all fields known to this type.default Field<?>[]
fields
(int... indexes) Get all fields known to this type, filtering by some field indexes.default Field<?>[]
Get all fields known to this type, filtering by some unqualified field names.default Field<?>[]
Get all fields, filtering by some fields.default Field<?>[]
Get all fields known to this type, filtering by some qualified field names.Get all fields known to this type as aRow
.Get all fields known to this type as aStream
.for_
(PeriodSpecification periodSpecification) Create a reference to a temporal table with aPeriodSpecification
for usage inSelect
.forceIndex
(String... indexes) Specify a MySQL style table hint for query optimisation.forceIndexForGroupBy
(String... indexes) Specify a MySQL style table hint for query optimisation.forceIndexForJoin
(String... indexes) Specify a MySQL style table hint for query optimisation.forceIndexForOrderBy
(String... indexes) Specify a MySQL style table hint for query optimisation.forPortionOf
(PeriodSpecification periodSpecification) final R
The inverse operation ofRecord.into(Table)
.final TableOnStep<Record>
FULL OUTER JOIN
a table to this table.final TableOnStep<Record>
FULL OUTER JOIN
a table to this table.final TableOnStep<Record>
FULL OUTER JOIN
a table to this table.final TableOnStep<Record>
FULL OUTER JOIN
a table to this table.final TableOnStep<Record>
FULL OUTER JOIN
a table to this table.final TableOnStep<Record>
FULL OUTER JOIN
a table to this table.final TableOnStep<Record>
fullOuterJoin
(String sql) FULL OUTER JOIN
a table to this table.final TableOnStep<Record>
fullOuterJoin
(String sql, Object... bindings) FULL OUTER JOIN
a table to this table.final TableOnStep<Record>
fullOuterJoin
(String sql, QueryPart... parts) FULL OUTER JOIN
a table to this table.final TableOnStep<Record>
fullOuterJoin
(Name name) FULL OUTER JOIN
a table to this table.final TableOnStep<Record>
fullOuterJoin
(SQL sql) FULL OUTER JOIN
a table to this table.final TableOnStep<Record>
fullOuterJoin
(TableLike<?> table) FULL OUTER JOIN
a table to this table.boolean
Subclasses may override thisThe object's underlyingBinding
.final Catalog
Get the object's catalog.Get a list ofCHECK
constraints of this table.final String
The comment on this object.final Comment
The comment on this object as aQueryPart
.The object's underlyingConverter
.getDataType
(Configuration configuration) The dialect-specific type of this object.Retrieve the table'sIDENTITY
information, if available.Retrieve all of the table's indexes.getKeys()
Retrieve all of the table's primary and unique keys.final String
getName()
The unqualified name of this object.final TableOptions
Get the table options.final Package
Get the UDT package if this is aUDT
, ornull
if it is not a UDT, or if it is a schema level UDT defined outside of a package.Retrieve the table's primary keyThe qualified name of this object.TableField<R,
?> A "timestamp" field holding record timestamp information used for optimistic lockingSubclasses must override this method if they use the generic type parameterR
for other types thanRecord
TableField<R,
?> A "version" field holding record version information used for optimistic lockingList<ForeignKey<R,
?>> Get the list ofFOREIGN KEY
's of this tablefinal <O extends Record>
List<ForeignKey<O,R>> getReferencesFrom
(Table<O> other) Get a list ofFOREIGN KEY
's of a specific table, referencing a this table.final <O extends Record>
List<ForeignKey<R,O>> getReferencesTo
(Table<O> other) Get a list ofFOREIGN KEY
's of this table, referencing a specific table.Get the object's schema.final TableOptions.TableType
Get the table type.getType()
The Java type of the object.Retrieve all of the table's unique keys.final Name
The unqualified name of this object.int
hashCode()
Generate a hash code from thisQueryPart
.ignoreIndex
(String... indexes) Specify a MySQL style table hint for query optimisation.ignoreIndexForGroupBy
(String... indexes) Specify a MySQL style table hint for query optimisation.ignoreIndexForJoin
(String... indexes) Specify a MySQL style table hint for query optimisation.ignoreIndexForOrderBy
(String... indexes) Specify a MySQL style table hint for query optimisation.default int
Get a field's index from this type.default int
Get a field's index from this type.default int
Get a field's index from this type.final TableOnStep<Record>
INNER JOIN
a table to this table.final TableOnStep<Record>
INNER JOIN
a table to this table.final TableOnStep<Record>
INNER JOIN
a table to this table.final TableOnStep<Record>
INNER JOIN
a table to this table.final TableOnStep<Record>
INNER JOIN
a table to this table.final TableOnStep<Record>
INNER JOIN
a table to this table.final boolean
protected boolean
Check if this table is a synthetic table.final TableOnStep<Record>
INNER JOIN
a table to this table.final TableOnStep<Record>
INNER JOIN
a table to this table.final TableOnStep<Record>
INNER JOIN
a table to this table.final TableOnStep<Record>
INNER JOIN
a table to this table.final TableOnStep<Record>
INNER JOIN
a table to this table.final TableOnStep<Record>
INNER JOIN
a table to this table.final TableOptionalOnStep<Record>
Join a table to this table using aJoinType
final TableOnStep<R>
leftAntiJoin
(TableLike<?> table) A syntheticLEFT ANTI JOIN
clause that translates to an equivalentNOT EXISTS
predicate.final TablePartitionByStep<Record>
LEFT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
LEFT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
LEFT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
LEFT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
LEFT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
LEFT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
leftOuterJoin
(String sql) LEFT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
leftOuterJoin
(String sql, Object... bindings) LEFT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
leftOuterJoin
(String sql, QueryPart... parts) LEFT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
leftOuterJoin
(Name name) LEFT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
leftOuterJoin
(SQL sql) LEFT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
leftOuterJoin
(TableLike<?> table) LEFT OUTER JOIN
a table to this table.final TableOnStep<R>
leftSemiJoin
(TableLike<?> table) A syntheticLEFT SEMI JOIN
clause that translates to an equivalentEXISTS
predicate.NATURAL FULL OUTER JOIN
a table to this table.naturalFullOuterJoin
(String sql, Object... bindings) NATURAL FULL OUTER JOIN
a table to this table.naturalFullOuterJoin
(String sql, QueryPart... parts) NATURAL FULL OUTER JOIN
a table to this table.naturalFullOuterJoin
(Name name) NATURAL FULL OUTER JOIN
a table to this table.naturalFullOuterJoin
(SQL sql) NATURAL FULL OUTER JOIN
a table to this table.naturalFullOuterJoin
(TableLike<?> table) NATURAL FULL OUTER JOIN
a table to this table.naturalJoin
(String sql) NATURAL JOIN
a table to this table.naturalJoin
(String sql, Object... bindings) NATURAL JOIN
a table to this table.naturalJoin
(String sql, QueryPart... parts) NATURAL JOIN
a table to this table.naturalJoin
(Name name) NATURAL JOIN
a table to this table.naturalJoin
(SQL sql) NATURAL JOIN
a table to this table.naturalJoin
(TableLike<?> table) NATURAL JOIN
a table to this table.NATURAL LEFT OUTER JOIN
a table to this table.naturalLeftOuterJoin
(String sql, Object... bindings) NATURAL LEFT OUTER JOIN
a table to this table.naturalLeftOuterJoin
(String sql, QueryPart... parts) NATURAL LEFT OUTER JOIN
a table to this table.naturalLeftOuterJoin
(Name name) NATURAL LEFT OUTER JOIN
a table to this table.naturalLeftOuterJoin
(SQL sql) NATURAL LEFT OUTER JOIN
a table to this table.naturalLeftOuterJoin
(TableLike<?> table) NATURAL LEFT OUTER JOIN
a table to this table.NATURAL RIGHT OUTER JOIN
a table to this table.naturalRightOuterJoin
(String sql, Object... bindings) NATURAL RIGHT OUTER JOIN
a table to this table.naturalRightOuterJoin
(String sql, QueryPart... parts) NATURAL RIGHT OUTER JOIN
a table to this table.naturalRightOuterJoin
(Name name) NATURAL RIGHT OUTER JOIN
a table to this table.naturalRightOuterJoin
(SQL sql) NATURAL RIGHT OUTER JOIN
a table to this table.naturalRightOuterJoin
(TableLike<?> table) NATURAL RIGHT OUTER JOIN
a table to this table.final Condition
TheNE
operator.final R
final Condition
TheNOT_EQUAL
operator, an alias for theNE
operator.outerApply
(String sql) OUTER APPLY
a table to this table.outerApply
(String sql, Object... bindings) OUTER APPLY
a table to this table.outerApply
(String sql, QueryPart... parts) OUTER APPLY
a table to this table.outerApply
(Name name) OUTER APPLY
a table to this table.outerApply
(SQL sql) OUTER APPLY
a table to this table.outerApply
(TableLike<?> table) OUTER APPLY
a table to this table.partitionBy
(Collection<? extends Field<?>> fields) Add aPARTITION BY
clause to the left hand side of theOUTER JOIN
keywordspartitionBy
(Field<?>... fields) Add aPARTITION BY
clause to the left hand side of theOUTER JOIN
keywordsfinal PivotForStep
pivot
(Collection<? extends Field<?>> aggregateFunctions) Create a newTABLE
reference from this table, pivoting it into another form.final PivotForStep
Create a newTABLE
reference from this table, pivoting it into another form.final PivotForStep
Create a newTABLE
reference from this table, pivoting it into another form.final RecordType<R>
The record type produced by this table.boolean
rendersContent
(Context<?> ctx) Subclasses may override thisfinal TablePartitionByStep<Record>
RIGHT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
RIGHT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
RIGHT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
RIGHT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
RIGHT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
RIGHT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
rightOuterJoin
(String sql) RIGHT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
rightOuterJoin
(String sql, Object... bindings) RIGHT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
rightOuterJoin
(String sql, QueryPart... parts) RIGHT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
rightOuterJoin
(Name name) RIGHT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
rightOuterJoin
(SQL sql) RIGHT OUTER JOIN
a table to this table.final TablePartitionByStep<Record>
rightOuterJoin
(TableLike<?> table) RIGHT OUTER JOIN
a table to this table.rowid()
TheROWID
operator.final TableOptionalOnStep<Record>
straightJoin
(String sql) STRAIGHT_JOIN
a table to this table.final TableOptionalOnStep<Record>
straightJoin
(String sql, Object... bindings) STRAIGHT_JOIN
a table to this table.final TableOptionalOnStep<Record>
straightJoin
(String sql, QueryPart... parts) STRAIGHT_JOIN
a table to this table.final TableOptionalOnStep<Record>
straightJoin
(Name name) STRAIGHT_JOIN
a table to this table.final TableOptionalOnStep<Record>
straightJoin
(SQL sql) STRAIGHT_JOIN
a table to this table.final TableOptionalOnStep<Record>
straightJoin
(TableLike<?> table) STRAIGHT_JOIN
a table to this table.toString()
Render a SQL string representation of thisQueryPart
.protected final DataAccessException
translate
(String sql, SQLException e) Internal convenience methoddefault Class<?>
type
(int index) Get the field type for a given field index, ornull
if no field is available at the index.default Class<?>
Get the field type for a given unqualified field name, ornull
if no field is known to this type by this name.default Class<?>
Get the field type for a given qualified field name, ornull
if no field is known to this type by this name.default Class<?>[]
types()
Get an array of field types for fields known to this type.Specify a MySQL style table hint for query optimisation.useIndexForGroupBy
(String... indexes) Specify a MySQL style table hint for query optimisation.useIndexForJoin
(String... indexes) Specify a MySQL style table hint for query optimisation.useIndexForOrderBy
(String... indexes) Specify a MySQL style table hint for query optimisation.final VersionsBetweenAndStep<R,
Number> versionsBetweenScn
(Number scn) Create anSQLDialect.ORACLE
flashback versions query clause from this table.final VersionsBetweenAndStep<R,
Number> versionsBetweenScn
(Field<? extends Number> scn) Create anSQLDialect.ORACLE
flashback versions query clause from this table.final VersionsBetweenAndStep<R,
Number> Create anSQLDialect.ORACLE
flashback versions query clause from this table.final VersionsBetweenAndStep<R,
Timestamp> versionsBetweenTimestamp
(Timestamp timestamp) Create anSQLDialect.ORACLE
flashback versions query clause from this table.final VersionsBetweenAndStep<R,
Timestamp> versionsBetweenTimestamp
(Field<Timestamp> timestamp) Create anSQLDialect.ORACLE
flashback versions query clause from this table.final VersionsBetweenAndStep<R,
Timestamp> Create anSQLDialect.ORACLE
flashback versions query clause from this table.Add aWHERE
clause to the table.Add aWHERE
clause to the table.Add aWHERE
clause to the table.where
(Collection<? extends Condition> conditions) Add aWHERE
clause to the table, connecting them with each other withOperator.AND
.Add aWHERE
clause to the table, connecting them with each other withOperator.AND
.Add aWHERE
clause to the table, connecting them with each other withOperator.AND
.Add aWHERE
clause to the table.Add aWHERE
clause to the table.whereExists
(Select<?> select) Add aWHERE EXISTS
clause to the table.whereNotExists
(Select<?> select) Add aWHERE NOT EXISTS
clause to the table.Specify a SQL Server style table hint for query optimisation.Specify a SQL Server style table hint for query optimisation.Specify a SQL Server style table hint for query optimisation.Specify a SQL Server style table hint for query optimisation.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.jooq.Named
$name, getComment, getCommentPart, getName, getQualifiedName, getUnqualifiedName
Methods inherited from interface org.jooq.QueryPartInternal
declaresCTE, declaresFields, declaresParameters, declaresWindows, generatesCast, rendersContent
-
Field Details
-
parameters
-
-
Constructor Details
-
TableImpl
Deprecated.- 3.10 - [#5996] - UseTableImpl(Name)
instead (or re-generated your code). -
TableImpl
Deprecated.- 3.10 - [#5996] - UseTableImpl(Name, Schema)
instead (or re-generated your code). -
TableImpl
Deprecated.- 3.10 - [#5996] - UseTableImpl(Name, Schema, Table)
instead (or re-generated your code). -
TableImpl
Deprecated.- 3.10 - [#5996] - UseTableImpl(Name, Schema, Table, Field[])
instead (or re-generated your code). -
TableImpl
@Deprecated public TableImpl(String name, Schema schema, Table<R> aliased, Field<?>[] parameters, String comment) Deprecated.- 3.10 - [#5996] - UseTableImpl(Name, Schema, Table, Field[], String)
instead (or re-generated your code). -
TableImpl
-
TableImpl
-
TableImpl
-
TableImpl
-
TableImpl
@Deprecated public TableImpl(Name name, Schema schema, Table<R> aliased, Field<?>[] parameters, String comment) Deprecated.- 3.11 - [#7027] - UseTableImpl(Name, Schema, Table, Field[], Comment)
instead. -
TableImpl
-
TableImpl
-
TableImpl
-
TableImpl
-
TableImpl
public TableImpl(Name name, Schema schema, Table<?> child, ForeignKey<?, R> path, Table<R> aliased, Field<?>[] parameters, Comment comment, TableOptions options)
-
-
Method Details
-
aliased
Check if this table already aliases another one.This method is used by generated code of table valued functions. Do not call this method directly.
-
isSynthetic
Check if this table is a synthetic table.This method is used by generated code of synthetic views. Do not call this method directly.
-
isSimple
-
fieldsRow
Description copied from interface:Fields
Get all fields known to this type as aRow
. -
clauses
Description copied from interface:QueryPartInternal
TheClause
s that are represented by this query part.QueryPart
s can specify severalClause
s for which an event will be emittedbefore
(in forward order) andafter
(in reverse order) visiting the the query part throughContext.visit(QueryPart)
This method is for JOOQ INTERNAL USE only. Do not reference directly
- Specified by:
clauses
in interfaceQueryPartInternal
- Returns:
- The
Clause
s represented by this query part ornull
or an empty array if this query part does not represent a clause.
-
accept
Description copied from interface:QueryPartInternal
ThisQueryPart
canaccept
aContext
object in order to render a SQL string or to bind its variables.- Specified by:
accept
in interfaceQueryPartInternal
-
as
Subclasses may override this method to provide custom aliasing implementationsCreate an alias for this table.
Note that the case-sensitivity of the returned table depends on
Settings.getRenderQuotedNames()
and theName
. By default, table aliases are quoted, and thus case-sensitive in many SQL dialects - useDSL.unquotedName(String...)
for case-insensitive aliases.If the argument
Name.getName()
is qualified, then theName.last()
part will be used.This method works both to alias the table as well as alias the table in its
SelectField
form via theSelectField.as(String)
override. In order to alias only the projected table expression, useDSL.field(SelectField)
to wrap this table into aField
-
as
Subclasses may override this method to provide custom aliasing implementationsCreate an alias for this table and its fields.
Note that the case-sensitivity of the returned table depends on
Settings.getRenderQuotedNames()
and theName
. By default, table aliases are quoted, and thus case-sensitive in many SQL dialects - useDSL.unquotedName(String...)
for case-insensitive aliases.If the argument
Name.getName()
is qualified, then theName.last()
part will be used.Derived column lists for table references
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)
Derived column lists for derived tables
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
-
rename
-
rename
-
rename
-
getRecordType
Subclasses must override this method if they use the generic type parameterR
for other types thanRecord
- Specified by:
getRecordType
in interfaceRecordQualifier<R extends Record>
-
declaresTables
public boolean declaresTables()Subclasses may override this- Specified by:
declaresTables
in interfaceQueryPartInternal
-
field
Description copied from interface:Fields
Get a field known to this type by unqualified name, ornull
if no field is known to this type by this name.If several fields have the same ambiguous name, the first one is returned and a warning is logged.
-
field
Description copied from interface:Fields
Get a field known to this type by unqualified name coerced totype
usingField.coerce(Class)
, ornull
if no field is known to this type by this name.If several fields have the same ambiguous name, the first one is returned and a warning is logged.
NOTE [#15286]: It is strongly recommended to pass only
Class
references of types supported by jOOQ internally, i.e. types fromSQLDataType
. If you're using any custom data types by means of aConverter
orBinding
, it's better to pass that convertedDataType
reference explicitly toFields.field(Name, DataType)
. -
field
Description copied from interface:Fields
Get a field known to this type by unqualified name coerced todataType
usingField.coerce(DataType)
, ornull
if no field is known to this type by this name.If several fields have the same ambiguous name, the first one is returned and a warning is logged.
-
field
Description copied from interface:Fields
Get a field known to this type by qualified name, ornull
if no field is known to this type by this name.This will return:
- A field whose name is equal to the argument field's name (exact matching fully qualified name).
- A field whose name is equal to the argument field's name (partially matching qualified name).
- A field whose name is equal to the unqualified name of the argument field.
null
otherwise.
If several fields have the same ambiguous name, the first one is returned and a warning is logged.
-
field
Description copied from interface:Fields
Get a field known to this type by qualified name coerced totype
usingField.coerce(Class)
, ornull
if no field is known to this type by this name.This will return:
- A field whose name is equal to the argument field's name (exact matching fully qualified name).
- A field whose name is equal to the argument field's name (partially matching qualified name).
- A field whose name is equal to the unqualified name of the argument field.
null
otherwise.
If several fields have the same ambiguous name, the first one is returned and a warning is logged.
NOTE [#15286]: It is strongly recommended to pass only
Class
references of types supported by jOOQ internally, i.e. types fromSQLDataType
. If you're using any custom data types by means of aConverter
orBinding
, it's better to pass that convertedDataType
reference explicitly toFields.field(Name, DataType)
. -
field
Description copied from interface:Fields
Get a field known to this type by qualified name coerced todataType
usingField.coerce(DataType)
, ornull
if no field is known to this type by this name.This will return:
- A field whose name is equal to the argument field's name (exact matching fully qualified name).
- A field whose name is equal to the argument field's name (partially matching qualified name).
- A field whose name is equal to the unqualified name of the argument field.
null
otherwise.
If several fields have the same ambiguous name, the first one is returned and a warning is logged.
-
$aliased
-
$alias
-
$traverse
Description copied from interface:QueryPart
Traverser thisQueryPart
expression tree using a composableTraverser
, producing a result.This offers a generic way to traverse expression trees to translate the tree to arbitrary other data structures. The simplest traversal would just count all the tree elements:
int count = CUSTOMER.NAME.eq(1).$traverse(0, (i, p) -> i + 1);
The same can be achieved by translating the JDK
Collector
API to theTraverser
API usingTraversers.collecting(Collector)
.CUSTOMER.NAME.eq(1).$traverse(Traversers.collecting(Collectors.counting()));
Unlike a
Collector
, aTraverser
is optimised for tree traversal, not stream traversal:- Is not designed for parallelism
- It can
Traverser.abort()
traversal early when the result can be produced early (e.g. when runningTraversers.containing(QueryPart)
, and a result has been found). - It can decide whether to
Traverser.recurse()
into aQueryPart
subtree, or whether that is not necessary or even undesirable, e.g. to prevent entering new subquery scopes. - Unlike a Collector, which can use its
Collector.accumulator()
to accumulate each element only once, in tree traversal, it's desirable to be able to distinguish between accumulating an itemTraverser.before()
orTraverser.after()
recursing into it. This is useful e.g. to wrap each tree node in XML opening and closing tags.
This is a commercial jOOQ edition only feature.
-
$replace
Description copied from interface:QueryPart
Traverse aQueryPart
hierarchy and recursively replace its elements by alternatives.This is a commercial jOOQ edition only feature.
-
hashCode
public int hashCode()Description copied from interface:QueryPart
Generate a hash code from thisQueryPart
.In general,
QueryPart
hash codes are the same as the hash codes generated fromQueryPart.toString()
. This guarantees consistent behaviour withQueryPart.equals(Object)
Some
QueryPart
implementations may choose to override this behaviour for improved performance, asQueryPart.toString()
is an expensive operation, if called many times. -
equals
Description copied from interface:QueryPart
Check whether thisQueryPart
can be considered equal to anotherQueryPart
.In general,
QueryPart
equality is defined in terms ofQueryPart.toString()
equality. In other words, two query parts are considered equal if their rendered SQL (with inlined bind variables) is equal. This means that the two query parts do not necessarily have to be of the same type.Some
QueryPart
implementations may choose to override this behaviour for improved performance, asQueryPart.toString()
is an expensive operation, if called many times. -
getType
Description copied from interface:Typed
The Java type of the object. -
getDataType
Description copied from interface:Typed
The dialect-specific type of this object.- Specified by:
getDataType
in interfaceTyped<R extends Record>
-
$dataType
Description copied from interface:Typed
Experimental query object model accessor method, see alsoQOM
. Subject to change in future jOOQ versions, use at your own risk. -
getBinding
Description copied from interface:Typed
The object's underlyingBinding
.- Specified by:
getBinding
in interfaceTyped<R extends Record>
-
getConverter
Description copied from interface:Typed
The object's underlyingConverter
.By default, all typed objects reference an identity-converter
Converter<T, T>
. If an implementation is generated, custom data types may be obtained by a customConverter
placed on the generated object.- Specified by:
getConverter
in interfaceTyped<R extends Record>
-
convert
Description copied from interface:SelectField
Apply an ad-hoc data typeBinding
to this field expression.Rather than attaching data type bindings at code generation time, or creating cumbersome expressions using
DataType.asConvertedDataType(Binding)
, this method allows for creating a derived field expression with an ad-hoc data type binding for single query usage.- Specified by:
convert
in interfaceSelectField<R extends Record>
- Type Parameters:
U
- The user type.- Parameters:
binding
- The binding to be applied on any operations using this field.- Returns:
- A derived field expression using a new binding.
-
convert
Description copied from interface:SelectField
Apply an ad-hoc data typeConverter
to this field expression.Rather than attaching data type converters at code generation time, or creating cumbersome expressions using
DataType.asConvertedDataType(Converter)
, this method allows for creating a derived field expression with an ad-hoc data type converter for single query usage.- Specified by:
convert
in interfaceSelectField<R extends Record>
- Type Parameters:
U
- The user type.- Parameters:
converter
- The converter to be applied on any operations using this field.- Returns:
- A derived field expression using a new converter.
-
convert
public final <U> SelectField<U> convert(Class<U> toType, Function<? super R, ? extends U> from, Function<? super U, ? extends R> to) Description copied from interface:SelectField
Apply an ad-hoc data typeConverter
to this field expression.Rather than attaching data type converters at code generation time, or creating cumbersome expressions using
DataType.asConvertedDataType(Class, Function, Function)
, this method allows for creating a derived field expression with an ad-hoc data type converter for single query usage.- Specified by:
convert
in interfaceSelectField<R extends Record>
- Type Parameters:
U
- The user type.- Returns:
- A derived field expression using a new converter.
-
convertFrom
Description copied from interface:SelectField
Apply an ad-hoc read-only data typeConverter
to this field expression.Rather than attaching data type converters at code generation time, or creating cumbersome expressions using
DataType.asConvertedDataTypeFrom(Class, Function)
, this method allows for creating a derived field expression with an ad-hoc data type converter for single query usage.- Specified by:
convertFrom
in interfaceSelectField<R extends Record>
- Type Parameters:
U
- The user type.- Returns:
- A derived field expression using a new converter.
-
convertFrom
Description copied from interface:SelectField
Apply an ad-hoc read-only data typeConverter
to this field expression.Rather than attaching data type converters at code generation time, or creating cumbersome expressions using
DataType.asConvertedDataTypeFrom(Class, Function)
, this method allows for creating a derived field expression with an ad-hoc data type converter for single query usage.Unlike
SelectField.convertFrom(Class, Function)
, this method attempts to work without an explicitClass
reference for the underlyingConverter.toType()
. There may be some edge cases where this doesn't work, e.g. when nesting rows in arrays, the class literal is required for reflective array creation.- Specified by:
convertFrom
in interfaceSelectField<R extends Record>
- Type Parameters:
U
- The user type.- Returns:
- A derived field expression using a new converter.
-
convertTo
Description copied from interface:SelectField
Apply an ad-hoc write-only data typeConverter
to this field expression.Rather than attaching data type converters at code generation time, or creating cumbersome expressions using
DataType.asConvertedDataTypeTo(Class, Function)
, this method allows for creating a derived field expression with an ad-hoc data type converter for single query usage.- Specified by:
convertTo
in interfaceSelectField<R extends Record>
- Type Parameters:
U
- The user type.- Returns:
- A derived field expression using a new converter.
-
convertTo
Description copied from interface:SelectField
Apply an ad-hoc write-only data typeConverter
to this field expression.Rather than attaching data type converters at code generation time, or creating cumbersome expressions using
DataType.asConvertedDataTypeTo(Class, Function)
, this method allows for creating a derived field expression with an ad-hoc data type converter for single query usage.Unlike
SelectField.convertTo(Class, Function)
, this method attempts to work without an explicitClass
reference for the underlyingConverter.toType()
. There may be some edge cases where this doesn't work, e.g. when nesting rows in arrays, the class literal is required for reflective array creation.- Specified by:
convertTo
in interfaceSelectField<R extends Record>
- Type Parameters:
U
- The user type.- Returns:
- A derived field expression using a new converter.
-
as
Description copied from interface:SelectField
Create an alias for this field based on another field's name.- Specified by:
as
in interfaceSelectField<R extends Record>
- Parameters:
otherField
- The other field whose name this field is aliased with.- Returns:
- The field alias.
-
from
Description copied from interface:Table
The inverse operation ofRecord.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);
-
asterisk
Description copied from interface:Table
Create a qualified asterisk expression from this table (table.*
) for use withSELECT
.When using an asterisk, jOOQ will let the database server define the order of columns, as well as which columns are included in the result set. If using jOOQ with generated code, this may conflict with the column set and its ordering as defined at code generation time, meaning columns may be in a different order, there may be fewer or more columns than expected. It is usually better to list columns explicitly.
-
getDataType
Description copied from interface:RecordQualifier
- Specified by:
getDataType
in interfaceRecordQualifier<R extends Record>
- Specified by:
getDataType
in interfaceTyped<R extends Record>
-
recordType
Description copied from interface:Table
The record type produced by this table.- Specified by:
recordType
in interfaceTable<R extends Record>
-
newRecord
Description copied from interface:RecordQualifier
- Specified by:
newRecord
in interfaceRecordQualifier<R extends Record>
- See Also:
-
fields
Description copied from interface:Fields
Get all fields known to this type. -
asMultiset
Description copied from interface:TableLike
Turn thisTableLike
expression into aDSL.multiset(TableLike)
.- Specified by:
asMultiset
in interfaceTableLike<R extends Record>
-
asMultiset
Description copied from interface:TableLike
Turn thisTableLike
expression into aDSL.multiset(TableLike)
.- Specified by:
asMultiset
in interfaceTableLike<R extends Record>
-
asMultiset
Description copied from interface:TableLike
Turn thisTableLike
expression into aDSL.multiset(TableLike)
.- Specified by:
asMultiset
in interfaceTableLike<R extends Record>
-
asMultiset
Description copied from interface:TableLike
Turn thisTableLike
expression into aDSL.multiset(TableLike)
.- Specified by:
asMultiset
in interfaceTableLike<R extends Record>
-
asTable
Description copied from interface:TableLike
The underlying table representation of this object.This method is useful for things like
SELECT * FROM (SELECT * FROM x WHERE x.a = '1') WHERE …
-
asTable
Description copied from interface:TableLike
The underlying aliased table representation of this object. -
asTable
Description copied from interface:TableLike
The underlying aliased table representation of this object. -
asTable
Description copied from interface:TableLike
The underlying aliased table representation of this object. -
asTable
Description copied from interface:TableLike
The underlying aliased table representation of this object. -
asTable
Description copied from interface:TableLike
The underlying aliased table representation of this object. -
asTable
Description copied from interface:TableLike
The underlying aliased table representation of this object. -
asTable
Description copied from interface:TableLike
The underlying aliased table representation of this object. -
asTable
Description copied from interface:TableLike
The underlying aliased table representation of this object. -
asTable
Description copied from interface:TableLike
The underlying aliased table representation of this object. -
asTable
public final Table<R> asTable(String alias, Function<? super Field<?>, ? extends String> aliasFunction) Description copied from interface:TableLike
The underlying aliased table representation of this object. -
asTable
public final Table<R> asTable(String alias, BiFunction<? super Field<?>, ? super Integer, ? extends String> aliasFunction) Description copied from interface:TableLike
The underlying aliased table representation of this object. -
as
Description copied from interface:Table
Create an alias for this table.Note that the case-sensitivity of the returned table depends on
Settings.getRenderQuotedNames()
. By default, table aliases are quoted, and thus case-sensitive in many SQL dialects!This method works both to alias the table as well as alias the table in its
SelectField
form via theSelectField.as(String)
override. In order to alias only the projected table expression, useDSL.field(SelectField)
to wrap this table into aField
first. -
as
Description copied from interface:Table
Create an alias for this table and its fields.Note that the case-sensitivity of the returned table and columns depends on
Settings.getRenderQuotedNames()
. By default, table aliases are quoted, and thus case-sensitive in many SQL dialects!Derived column lists for table references
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)
Derived column lists for derived tables
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
-
as
Description copied from interface:Table
Create an alias for this table and its fields.Note that the case-sensitivity of the returned table and columns depends on
Settings.getRenderQuotedNames()
. By default, table aliases are quoted, and thus case-sensitive in many SQL dialects!Derived column lists for table references
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)
Derived column lists for derived tables
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
-
as
Description copied from interface:Table
Create an alias for this table and its fields.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());
-
as
public final Table<R> as(String alias, BiFunction<? super Field<?>, ? super Integer, ? extends String> aliasFunction) Description copied from interface:Table
Create an alias for this table and its fields.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);
-
as
Description copied from interface:Table
Create an alias for this table and its fields.Note that the case-sensitivity of the returned table depends on
Settings.getRenderQuotedNames()
and theName
. By default, table aliases are quoted, and thus case-sensitive in many SQL dialects - useDSL.unquotedName(String...)
for case-insensitive aliases.If the argument
Name.getName()
is qualified, then theName.last()
part will be used.Derived column lists for table references
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)
Derived column lists for derived tables
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
-
as
Description copied from interface:Table
Create an alias for this table and its fields.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());
-
as
public final Table<R> as(Name alias, BiFunction<? super Field<?>, ? super Integer, ? extends Name> aliasFunction) Description copied from interface:Table
Create an alias for this table and its fields.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);
-
getTableType
Description copied from interface:Table
Get the table type.- Specified by:
getTableType
in interfaceTable<R extends Record>
-
getOptions
Description copied from interface:Table
Get the table options.- Specified by:
getOptions
in interfaceTable<R extends Record>
-
getCatalog
Description copied from interface:Qualified
Get the object's catalog.- Specified by:
getCatalog
in interfaceQualified
-
getPackage
Description copied from interface:RecordQualifier
Get the UDT package if this is aUDT
, ornull
if it is not a UDT, or if it is a schema level UDT defined outside of a package.- Specified by:
getPackage
in interfaceRecordQualifier<R extends Record>
-
getSchema
Description copied from interface:Qualified
Get the object's schema. -
getIdentity
Retrieve the table'sIDENTITY
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 whenINSERT
statements are performed.An
IDENTITY
column is usually part of thePRIMARY KEY
or of aUNIQUE KEY
in the table, although in some RDBMS, this is not required. There can only be at most oneIDENTITY
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
- Specified by:
getIdentity
in interfaceTable<R extends Record>
- Returns:
- The table's
IDENTITY
information, ornull
, if no such information is available.
-
getPrimaryKey
Retrieve the table's primary keySubclasses may override this method
- Specified by:
getPrimaryKey
in interfaceTable<R extends Record>
- Returns:
- The primary key. This is never
null
for an updatable table.
-
getRecordVersion
A "version" field holding record version information used for optimistic lockingjOOQ supports optimistic locking in
UpdatableRecord.store()
andUpdatableRecord.delete()
ifSettings.isExecuteWithOptimisticLocking()
is enabled. Optimistic locking is performed in a singleUPDATE
orDELETE
statement if tables provide a "version" or "timestamp" field, or in two steps using an additionalSELECT … 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
- Specified by:
getRecordVersion
in interfaceTable<R extends Record>
- Returns:
- The "version" field, or
null
, if this table has no "version" field. - See Also:
-
getRecordTimestamp
A "timestamp" field holding record timestamp information used for optimistic lockingjOOQ supports optimistic locking in
UpdatableRecord.store()
andUpdatableRecord.delete()
ifSettings.isExecuteWithOptimisticLocking()
is enabled. Optimistic locking is performed in a singleUPDATE
orDELETE
statement if tables provide a "version" or "timestamp" field, or in two steps using an additionalSELECT … 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
- Specified by:
getRecordTimestamp
in interfaceTable<R extends Record>
- Returns:
- The "timestamp" field, or
null
, if this table has no "timestamp" field. - See Also:
-
getIndexes
Retrieve all of the table's indexes.Subclasses should override this method
- Specified by:
getIndexes
in interfaceTable<R extends Record>
- Returns:
- All indexes. This is never
null
.
-
getKeys
Retrieve all of the table's primary and unique keys.Subclasses should no longer override this method, which may be made final in the future.
- Specified by:
getKeys
in interfaceTable<R extends Record>
- Returns:
- All keys. This is never
null
. This is never empty for aTable
with aTable.getPrimaryKey()
.
-
getUniqueKeys
Retrieve all of the table's unique keys.Subclasses should override this method
- Specified by:
getUniqueKeys
in interfaceTable<R extends Record>
- Returns:
- All keys. This is never
null
.
-
getReferencesFrom
Description copied from interface:Table
Get a list ofFOREIGN KEY
's of a specific table, referencing a this table.This will recurse into joined tables.
- Specified by:
getReferencesFrom
in interfaceTable<R extends Record>
- Type Parameters:
O
- The other table's record type- Parameters:
other
- The other table of the foreign key relationship- Returns:
- Some other table's
FOREIGN KEY
's towards an this table. This is nevernull
.
-
getReferences
Get the list ofFOREIGN KEY
's of this tableSubclasses should override this method
- Specified by:
getReferences
in interfaceTable<R extends Record>
- Returns:
- This table's
FOREIGN KEY
's. This is nevernull
.
-
getReferencesTo
Description copied from interface:Table
Get a list ofFOREIGN KEY
's of this table, referencing a specific table.This will recurse into joined tables.
- Specified by:
getReferencesTo
in interfaceTable<R extends Record>
- Type Parameters:
O
- The other table's record type- Parameters:
other
- The other table of the foreign key relationship- Returns:
- This table's
FOREIGN KEY
's towards an other table. This is nevernull
.
-
getChecks
Get a list ofCHECK
constraints of this table.Subclasses should override this method
-
createField
@Deprecated protected static final <R extends Record,T> TableField<R,T> createField(String name, DataType<T> type, Table<R> table) Deprecated.- 3.12.0 - [#8000] - UseAbstractTable.createField(Name, DataType, Table)
instead.Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
@Deprecated protected static final <R extends Record,T> TableField<R,T> createField(String name, DataType<T> type, Table<R> table, String comment) Deprecated.- 3.12.0 - [#8000] - UseAbstractTable.createField(Name, DataType, Table, String)
instead.Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
@Deprecated protected static final <R extends Record,T, TableField<R,U> U> createField(String name, DataType<T> type, Table<R> table, String comment, Converter<T, U> converter) Deprecated.- 3.12.0 - [#8000] - UseAbstractTable.createField(Name, DataType, Table, String, Converter)
instead.Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
@Deprecated protected static final <R extends Record,T, TableField<R,U> U> createField(String name, DataType<T> type, Table<R> table, String comment, Binding<T, U> binding) Deprecated.- 3.12.0 - [#8000] - UseAbstractTable.createField(Name, DataType, Table, String, Binding)
instead.Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
@Deprecated protected static final <R extends Record,T, TableField<R,X, U> U> createField(String name, DataType<T> type, Table<R> table, String comment, Converter<X, U> converter, Binding<T, X> binding) Deprecated.- 3.12.0 - [#8000] - UseAbstractTable.createField(Name, DataType, Table, String, Converter, Binding)
instead.Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
Deprecated.- 3.12.0 - [#8000] - UsecreateField(Name, DataType)
instead.Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
@Deprecated protected final <T> TableField<R,T> createField(String name, DataType<T> type, String comment) Deprecated.- 3.12.0 - [#8000] - UsecreateField(Name, DataType, String)
instead.Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
@Deprecated protected final <T,U> TableField<R,U> createField(String name, DataType<T> type, String comment, Converter<T, U> converter) Deprecated.- 3.12.0 - [#8000] - UsecreateField(Name, DataType, String, Converter)
instead.Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
@Deprecated protected final <T,U> TableField<R,U> createField(String name, DataType<T> type, String comment, Binding<T, U> binding) Deprecated.- 3.12.0 - [#8000] - UsecreateField(Name, DataType, String, Binding)
instead.Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
@Deprecated protected final <T,X, TableField<R,U> U> createField(String name, DataType<T> type, String comment, Converter<X, U> converter, Binding<T, X> binding) Deprecated.- 3.12.0 - [#8000] - UsecreateField(Name, DataType, String, Converter, Binding)
instead.Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
protected static final <R extends Record,T> TableField<R,T> createField(Name name, DataType<T> type, Table<R> table) Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
protected static final <R extends Record,T> TableField<R,T> createField(Name name, DataType<T> type, Table<R> table, String comment) Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
protected static final <R extends Record,T, TableField<R,U> U> createField(Name name, DataType<T> type, Table<R> table, String comment, Converter<T, U> converter) Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
protected static final <R extends Record,T, TableField<R,U> U> createField(Name name, DataType<T> type, Table<R> table, String comment, Binding<T, U> binding) Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
protected static final <R extends Record,T, TableField<R,X, U> U> createField(Name name, DataType<T> type, Table<R> table, String comment, Converter<X, U> converter, Binding<T, X> binding) Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
protected static final <R extends Record,TR extends Table<R>, TableField<R,T> T> createField(Name name, DataType<T> type, TR table, String comment, Generator<R, TR, T> generator) Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
protected static final <R extends Record,TR extends Table<R>, TableField<R,T, U> U> createField(Name name, DataType<T> type, TR table, String comment, Converter<T, U> converter, Generator<R, TR, U> generator) Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
protected static final <R extends Record,TR extends Table<R>, TableField<R,T, U> U> createField(Name name, DataType<T> type, TR table, String comment, Binding<T, U> binding, Generator<R, TR, U> generator) Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
protected static final <R extends Record,TR extends Table<R>, TableField<R,T, X, U> U> createField(Name name, DataType<T> type, TR table, String comment, Converter<X, U> converter, Binding<T, X> binding, Generator<R, TR, U> generator) Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
protected final <T,U> TableField<R,U> createField(Name name, DataType<T> type, String comment, Converter<T, U> converter) Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
protected final <T,U> TableField<R,U> createField(Name name, DataType<T> type, String comment, Binding<T, U> binding) Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField
protected final <T,X, TableField<R,U> U> createField(Name name, DataType<T> type, String comment, Converter<X, U> converter, Binding<T, X> binding) Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField0
protected final <TR extends Table<R>,T> TableField<R,T> createField0(Name name, DataType<T> type, TR table, String comment, Generator<R, TR, T> generator) Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField0
protected final <TR extends Table<R>,T, TableField<R,U> U> createField0(Name name, DataType<T> type, TR table, String comment, Converter<T, U> converter, Generator<R, TR, U> generator) Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField0
protected final <TR extends Table<R>,T, TableField<R,U> U> createField0(Name name, DataType<T> type, TR table, String comment, Binding<T, U> binding, Generator<R, TR, U> generator) Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createField0
protected final <TR extends Table<R>,T, TableField<R,X, U> U> createField0(Name name, DataType<T> type, TR table, String comment, Converter<X, U> converter, Binding<T, X> binding, Generator<R, TR, U> generator) Subclasses may call this method to createTableField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
eq
Description copied from interface:Table
TheEQ
operator. -
equal
Description copied from interface:Table
TheEQUAL
operator, an alias for theEQ
operator. -
ne
Description copied from interface:Table
TheNE
operator. -
notEqual
Description copied from interface:Table
TheNOT_EQUAL
operator, an alias for theNE
operator. -
rowid
Description copied from interface:Table
TheROWID
operator.Get a
table.rowid
reference from this table.A rowid value describes the physical location of a row on the disk, which can be used as a replacement for a primary key in some situations - especially within a query, e.g. to self-join a table:
-- Emulating this MySQL statement... DELETE FROM x ORDER BY x.y LIMIT 1 -- ... in other databases DELETE FROM x WHERE x.rowid IN ( SELECT x.rowid FROM x ORDER BY x.a LIMIT 1 )
It is not recommended to use
rowid
values in client applications as actual row identifiers as the database system may move a row to a different physical location at any time, thus changing the rowid value. In general, use primary keys, instead. -
useIndex
Description copied from interface:Table
Specify a MySQL style table hint for query optimisation.Example:
create.select() .from(BOOK.as("b").useIndex("MY_INDEX") .fetch();
-
useIndexForJoin
Description copied from interface:Table
Specify a MySQL style table hint for query optimisation.Example:
create.select() .from(BOOK.as("b").useIndexForJoin("MY_INDEX") .fetch();
- Specified by:
useIndexForJoin
in interfaceTable<R extends Record>
- See Also:
-
useIndexForOrderBy
Description copied from interface:Table
Specify a MySQL style table hint for query optimisation.Example:
create.select() .from(BOOK.as("b").useIndexForOrderBy("MY_INDEX") .fetch();
- Specified by:
useIndexForOrderBy
in interfaceTable<R extends Record>
- See Also:
-
useIndexForGroupBy
Description copied from interface:Table
Specify a MySQL style table hint for query optimisation.Example:
create.select() .from(BOOK.as("b").useIndexForGroupBy("MY_INDEX") .fetch();
- Specified by:
useIndexForGroupBy
in interfaceTable<R extends Record>
- See Also:
-
ignoreIndex
Description copied from interface:Table
Specify a MySQL style table hint for query optimisation.Example:
create.select() .from(BOOK.as("b").useIndex("MY_INDEX") .fetch();
- Specified by:
ignoreIndex
in interfaceTable<R extends Record>
- See Also:
-
ignoreIndexForJoin
Description copied from interface:Table
Specify a MySQL style table hint for query optimisation.Example:
create.select() .from(BOOK.as("b").useIndexForJoin("MY_INDEX") .fetch();
- Specified by:
ignoreIndexForJoin
in interfaceTable<R extends Record>
- See Also:
-
ignoreIndexForOrderBy
Description copied from interface:Table
Specify a MySQL style table hint for query optimisation.Example:
create.select() .from(BOOK.as("b").useIndexForOrderBy("MY_INDEX") .fetch();
- Specified by:
ignoreIndexForOrderBy
in interfaceTable<R extends Record>
- See Also:
-
ignoreIndexForGroupBy
Description copied from interface:Table
Specify a MySQL style table hint for query optimisation.Example:
create.select() .from(BOOK.as("b").useIndexForGroupBy("MY_INDEX") .fetch();
- Specified by:
ignoreIndexForGroupBy
in interfaceTable<R extends Record>
- See Also:
-
forceIndex
Description copied from interface:Table
Specify a MySQL style table hint for query optimisation.Example:
create.select() .from(BOOK.as("b").useIndex("MY_INDEX") .fetch();
- Specified by:
forceIndex
in interfaceTable<R extends Record>
- See Also:
-
forceIndexForJoin
Description copied from interface:Table
Specify a MySQL style table hint for query optimisation.Example:
create.select() .from(BOOK.as("b").useIndexForJoin("MY_INDEX") .fetch();
- Specified by:
forceIndexForJoin
in interfaceTable<R extends Record>
- See Also:
-
forceIndexForOrderBy
Description copied from interface:Table
Specify a MySQL style table hint for query optimisation.Example:
create.select() .from(BOOK.as("b").useIndexForOrderBy("MY_INDEX") .fetch();
- Specified by:
forceIndexForOrderBy
in interfaceTable<R extends Record>
- See Also:
-
forceIndexForGroupBy
Description copied from interface:Table
Specify a MySQL style table hint for query optimisation.Example:
create.select() .from(BOOK.as("b").useIndexForGroupBy("MY_INDEX") .fetch();
- Specified by:
forceIndexForGroupBy
in interfaceTable<R extends Record>
- See Also:
-
as
Description copied from interface:Table
Create an alias for this table based on another table's name. -
as
Description copied from interface:Table
Create an alias for this table based on another table's name. -
as
Description copied from interface:Table
Create an alias for this table based on another table's name. -
as
public final Table<R> as(Table<?> otherTable, Function<? super Field<?>, ? extends Field<?>> aliasFunction) Description copied from interface:Table
Create an alias for this table and its fields.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));
-
as
public final Table<R> as(Table<?> otherTable, BiFunction<? super Field<?>, ? super Integer, ? extends Field<?>> aliasFunction) Description copied from interface:Table
Create an alias for this table and its fields.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);
-
with
Description copied from interface:Table
Specify a SQL Server style table hint for query optimisation.This 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, seeSelectFromStep.hint(String)
andSelectQuery.addHint(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!
-
with
Description copied from interface:Table
Specify a SQL Server style table hint for query optimisation.This 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, seeSelectFromStep.hint(String)
andSelectQuery.addHint(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!
-
with
Description copied from interface:Table
Specify a SQL Server style table hint for query optimisation.This 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, seeSelectFromStep.hint(String)
andSelectQuery.addHint(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!
-
with
Description copied from interface:Table
Specify a SQL Server style table hint for query optimisation.This 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, seeSelectFromStep.hint(String)
andSelectQuery.addHint(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!
-
at
Description copied from interface:Table
A table reference of this table at a givenLink
. -
at
Description copied from interface:Table
A table reference of this table at a givenLink
. -
at
Description copied from interface:Table
A table reference of this table at a givenLink
. -
pivot
Description copied from interface:Table
Create a newTABLE
reference from this table, pivoting it into another form. -
pivot
Description copied from interface:Table
Create a newTABLE
reference from this table, pivoting it into another form. -
pivot
Description copied from interface:Table
Create a newTABLE
reference from this table, pivoting it into another form. -
for_
Description copied from interface:Table
Create a reference to a temporal table with aPeriodSpecification
for usage inSelect
. -
forPortionOf
Description copied from interface:Table
- Specified by:
forPortionOf
in interfaceTable<R extends Record>
-
versionsBetweenScn
Description copied from interface:Table
Create anSQLDialect.ORACLE
flashback versions query clause from this table.- Specified by:
versionsBetweenScn
in interfaceTable<R extends Record>
-
versionsBetweenScn
Description copied from interface:Table
Create anSQLDialect.ORACLE
flashback versions query clause from this table.- Specified by:
versionsBetweenScn
in interfaceTable<R extends Record>
-
versionsBetweenScnMinvalue
Description copied from interface:Table
Create anSQLDialect.ORACLE
flashback versions query clause from this table.- Specified by:
versionsBetweenScnMinvalue
in interfaceTable<R extends Record>
-
versionsBetweenTimestamp
Description copied from interface:Table
Create anSQLDialect.ORACLE
flashback versions query clause from this table.- Specified by:
versionsBetweenTimestamp
in interfaceTable<R extends Record>
-
versionsBetweenTimestamp
@Pro public final VersionsBetweenAndStep<R,Timestamp> versionsBetweenTimestamp(Field<Timestamp> timestamp) Description copied from interface:Table
Create anSQLDialect.ORACLE
flashback versions query clause from this table.- Specified by:
versionsBetweenTimestamp
in interfaceTable<R extends Record>
-
versionsBetweenTimestampMinvalue
Description copied from interface:Table
Create anSQLDialect.ORACLE
flashback versions query clause from this table.- Specified by:
versionsBetweenTimestampMinvalue
in interfaceTable<R extends Record>
-
asOfScn
Description copied from interface:Table
Create anSQLDialect.ORACLE
flashback query clause from this table. -
asOfScn
Description copied from interface:Table
Create anSQLDialect.ORACLE
flashback query clause from this table. -
asOfTimestamp
Description copied from interface:Table
Create anSQLDialect.ORACLE
flashback query clause from this table.- Specified by:
asOfTimestamp
in interfaceTable<R extends Record>
-
asOfTimestamp
Description copied from interface:Table
Create anSQLDialect.ORACLE
flashback query clause from this table.- Specified by:
asOfTimestamp
in interfaceTable<R extends Record>
-
divideBy
Description copied from interface:Table
Create a newTABLE
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(…)
andreturning(…)
clauses.For more information about relational division and some nice, real-life examples, see
- http ://en.wikipedia.org/wiki/Relational_algebra#Division
- http://www.simple-talk.com/sql/t-sql-programming/divided-we-stand-the- sql-of-relational-division/
This has been observed to work with all dialects
-
leftSemiJoin
Description copied from interface:Table
A syntheticLEFT SEMI JOIN
clause that translates to an equivalentEXISTS
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 )
Notice that according to Relational algebra's understanding of left semi join, the right hand side of the left semi join operator is not projected, i.e. it cannot be accessed from
WHERE
orSELECT
or any other clause thanON
.- Specified by:
leftSemiJoin
in interfaceTable<R extends Record>
-
leftAntiJoin
Description copied from interface:Table
A syntheticLEFT ANTI JOIN
clause that translates to an equivalentNOT 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 )
Notice that according to Relational algebra's understanding of left anti join, the right hand side of the left anti join operator is not projected, i.e. it cannot be accessed from
WHERE
orSELECT
or any other clause thanON
.- Specified by:
leftAntiJoin
in interfaceTable<R extends Record>
-
where
Description copied from interface:Table
Add aWHERE
clause to the table, connecting them with each other withOperator.AND
.The resulting table acts like a derived table that projects all of this table's columns and filters by the argument
Condition
. If syntactically reasonable, the derived table may be inlined to the query that selects from the resulting table. -
where
Description copied from interface:Table
Add aWHERE
clause to the table, connecting them with each other withOperator.AND
.The resulting table acts like a derived table that projects all of this table's columns and filters by the argument
Condition
. If syntactically reasonable, the derived table may be inlined to the query that selects from the resulting table. -
where
Description copied from interface:Table
Add aWHERE
clause to the table, connecting them with each other withOperator.AND
.The resulting table acts like a derived table that projects all of this table's columns and filters by the argument
Condition
. If syntactically reasonable, the derived table may be inlined to the query that selects from the resulting table. -
where
Description copied from interface:Table
Add aWHERE
clause to the table.The resulting table acts like a derived table that projects all of this table's columns and filters by the argument
Condition
. If syntactically reasonable, the derived table may be inlined to the query that selects from the resulting table. -
where
Description copied from interface:Table
Add aWHERE
clause to the table.The resulting table acts like a derived table that projects all of this table's columns and filters by the argument
Condition
. If syntactically reasonable, the derived table may be inlined to the query that selects from the resulting 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!
-
where
Description copied from interface:Table
Add aWHERE
clause to the table.The resulting table acts like a derived table that projects all of this table's columns and filters by the argument
Condition
. If syntactically reasonable, the derived table may be inlined to the query that selects from the resulting 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!
-
where
Description copied from interface:Table
Add aWHERE
clause to the table.The resulting table acts like a derived table that projects all of this table's columns and filters by the argument
Condition
. If syntactically reasonable, the derived table may be inlined to the query that selects from the resulting 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!
-
where
Description copied from interface:Table
Add aWHERE
clause to the table.The resulting table acts like a derived table that projects all of this table's columns and filters by the argument
Condition
. If syntactically reasonable, the derived table may be inlined to the query that selects from the resulting 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!
-
whereExists
Description copied from interface:Table
Add aWHERE EXISTS
clause to the table.The resulting table acts like a derived table that projects all of this table's columns and filters by the argument
Condition
. If syntactically reasonable, the derived table may be inlined to the query that selects from the resulting table.- Specified by:
whereExists
in interfaceTable<R extends Record>
-
whereNotExists
Description copied from interface:Table
Add aWHERE NOT EXISTS
clause to the table.The resulting table acts like a derived table that projects all of this table's columns and filters by the argument
Condition
. If syntactically reasonable, the derived table may be inlined to the query that selects from the resulting table.- Specified by:
whereNotExists
in interfaceTable<R extends Record>
-
join
Description copied from interface:Table
Join a table to this table using aJoinType
Depending on the
JoinType
, a subsequentTableOnStep.on(Condition)
orTableOnStep.using(Field...)
clause is required. If it is required but omitted, aDSL.trueCondition()
, i.e.1 = 1
condition will be rendered -
join
Description copied from interface:Table
INNER JOIN
a table to this table.A synonym for
Table.innerJoin(TableLike)
. -
join
Description copied from interface:Table
INNER 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
Description copied from interface:Table
INNER 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
Description copied from interface:Table
INNER 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
Description copied from interface:Table
INNER 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
Description copied from interface:Table
INNER JOIN
a table to this table.A synonym for
Table.innerJoin(Name)
. -
innerJoin
Description copied from interface:Table
INNER JOIN
a table to this table. -
innerJoin
Description copied from interface:Table
INNER 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
Description copied from interface:Table
INNER 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
Description copied from interface:Table
INNER 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
Description copied from interface:Table
INNER 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
Description copied from interface:Table
INNER JOIN
a table to this table. -
partitionBy
Description copied from interface:Table
Add aPARTITION BY
clause to the left hand side of theOUTER JOIN
keywords- Specified by:
partitionBy
in interfaceTable<R extends Record>
-
partitionBy
Description copied from interface:Table
Add aPARTITION BY
clause to the left hand side of theOUTER JOIN
keywords- Specified by:
partitionBy
in interfaceTable<R extends Record>
-
leftJoin
Description copied from interface:Table
LEFT OUTER JOIN
a table to this table.A synonym for
Table.leftOuterJoin(TableLike)
. -
leftJoin
Description copied from interface:Table
LEFT 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
Description copied from interface:Table
LEFT 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
Description copied from interface:Table
LEFT 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
Description copied from interface:Table
LEFT 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
Description copied from interface:Table
LEFT OUTER JOIN
a table to this table.A synonym for
Table.leftOuterJoin(Name)
. -
leftOuterJoin
Description copied from interface:Table
LEFT OUTER JOIN
a table to this table.- Specified by:
leftOuterJoin
in interfaceTable<R extends Record>
-
leftOuterJoin
Description copied from interface:Table
LEFT 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!
- Specified by:
leftOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
leftOuterJoin
Description copied from interface:Table
LEFT 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!
- Specified by:
leftOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
leftOuterJoin
Description copied from interface:Table
LEFT 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!
- Specified by:
leftOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
leftOuterJoin
Description copied from interface:Table
LEFT 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!
- Specified by:
leftOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
leftOuterJoin
Description copied from interface:Table
LEFT OUTER JOIN
a table to this table.- Specified by:
leftOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
rightJoin
Description copied from interface:Table
RIGHT OUTER JOIN
a table to this table.A synonym for
Table.rightOuterJoin(TableLike)
.This is only possible where the underlying RDBMS supports it.
-
rightJoin
Description copied from interface:Table
RIGHT 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
Description copied from interface:Table
RIGHT 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
Description copied from interface:Table
RIGHT 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
Description copied from interface:Table
RIGHT 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
Description copied from interface:Table
RIGHT OUTER JOIN
a table to this table.A synonym for
Table.rightOuterJoin(Name)
.This is only possible where the underlying RDBMS supports it
-
rightOuterJoin
Description copied from interface:Table
RIGHT OUTER JOIN
a table to this table.This is only possible where the underlying RDBMS supports it
- Specified by:
rightOuterJoin
in interfaceTable<R extends Record>
-
rightOuterJoin
Description copied from interface:Table
RIGHT 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!
- Specified by:
rightOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
rightOuterJoin
Description copied from interface:Table
RIGHT 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!
- Specified by:
rightOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
rightOuterJoin
Description copied from interface:Table
RIGHT 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!
- Specified by:
rightOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
rightOuterJoin
Description copied from interface:Table
RIGHT 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!
- Specified by:
rightOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
rightOuterJoin
Description copied from interface:Table
RIGHT OUTER JOIN
a table to this table.This is only possible where the underlying RDBMS supports it
- Specified by:
rightOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
fullOuterJoin
Description copied from interface:Table
FULL OUTER JOIN
a table to this table.This is only possible where the underlying RDBMS supports it
- Specified by:
fullOuterJoin
in interfaceTable<R extends Record>
-
fullOuterJoin
Description copied from interface:Table
FULL 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!
- Specified by:
fullOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
fullOuterJoin
Description copied from interface:Table
FULL 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!
- Specified by:
fullOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
fullOuterJoin
Description copied from interface:Table
FULL 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!
- Specified by:
fullOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
fullOuterJoin
Description copied from interface:Table
FULL 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!
- Specified by:
fullOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
fullOuterJoin
Description copied from interface:Table
FULL OUTER JOIN
a table to this table.This is only possible where the underlying RDBMS supports it
- Specified by:
fullOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
fullJoin
Description copied from interface:Table
FULL OUTER JOIN
a table to this table.A synonym for
Table.fullOuterJoin(TableLike)
. -
fullJoin
Description copied from interface:Table
FULL 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!
-
fullJoin
Description copied from interface:Table
FULL 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!
-
fullJoin
Description copied from interface:Table
FULL 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!
-
fullJoin
Description copied from interface:Table
FULL 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!
-
fullJoin
Description copied from interface:Table
FULL OUTER JOIN
a table to this table.A synonym for
Table.fullOuterJoin(Name)
. -
crossJoin
Description copied from interface:Table
CROSS 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
Description copied from interface:Table
CROSS 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
Description copied from interface:Table
CROSS 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
Description copied from interface:Table
CROSS 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
Description copied from interface:Table
CROSS 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
Description copied from interface:Table
CROSS 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
-
naturalJoin
Description copied from interface:Table
NATURAL 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.
- Specified by:
naturalJoin
in interfaceTable<R extends Record>
-
naturalJoin
Description copied from interface:Table
NATURAL 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!
- Specified by:
naturalJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalJoin
Description copied from interface:Table
NATURAL 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!
- Specified by:
naturalJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalJoin
Description copied from interface:Table
NATURAL 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!
- Specified by:
naturalJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalJoin
Description copied from interface:Table
NATURAL 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!
- Specified by:
naturalJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalJoin
Description copied from interface:Table
NATURAL 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.
- Specified by:
naturalJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalLeftOuterJoin
Description copied from interface:Table
NATURAL 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.
- Specified by:
naturalLeftOuterJoin
in interfaceTable<R extends Record>
-
naturalLeftOuterJoin
Description copied from interface:Table
NATURAL 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!
- Specified by:
naturalLeftOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalLeftOuterJoin
Description copied from interface:Table
NATURAL 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!
- Specified by:
naturalLeftOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalLeftOuterJoin
Description copied from interface:Table
NATURAL 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!
- Specified by:
naturalLeftOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalLeftOuterJoin
Description copied from interface:Table
NATURAL 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!
- Specified by:
naturalLeftOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalLeftOuterJoin
Description copied from interface:Table
NATURAL 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.
- Specified by:
naturalLeftOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalRightOuterJoin
Description copied from interface:Table
NATURAL 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.
- Specified by:
naturalRightOuterJoin
in interfaceTable<R extends Record>
-
naturalRightOuterJoin
Description copied from interface:Table
NATURAL 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!
- Specified by:
naturalRightOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalRightOuterJoin
Description copied from interface:Table
NATURAL 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!
- Specified by:
naturalRightOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalRightOuterJoin
Description copied from interface:Table
NATURAL 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!
- Specified by:
naturalRightOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalRightOuterJoin
Description copied from interface:Table
NATURAL 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!
- Specified by:
naturalRightOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalRightOuterJoin
Description copied from interface:Table
NATURAL 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.
- Specified by:
naturalRightOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalFullOuterJoin
Description copied from interface:Table
NATURAL FULL 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.
- Specified by:
naturalFullOuterJoin
in interfaceTable<R extends Record>
-
naturalFullOuterJoin
Description copied from interface:Table
NATURAL FULL 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!
- Specified by:
naturalFullOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalFullOuterJoin
Description copied from interface:Table
NATURAL FULL 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!
- Specified by:
naturalFullOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalFullOuterJoin
Description copied from interface:Table
NATURAL FULL 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!
- Specified by:
naturalFullOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalFullOuterJoin
Description copied from interface:Table
NATURAL FULL 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!
- Specified by:
naturalFullOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
naturalFullOuterJoin
Description copied from interface:Table
NATURAL FULL 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.
- Specified by:
naturalFullOuterJoin
in interfaceTable<R extends Record>
- See Also:
-
crossApply
Description copied from interface:Table
CROSS APPLY
a table to this table.- Specified by:
crossApply
in interfaceTable<R extends Record>
-
crossApply
Description copied from interface:Table
CROSS 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!
- Specified by:
crossApply
in interfaceTable<R extends Record>
- See Also:
-
crossApply
Description copied from interface:Table
CROSS 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!
- Specified by:
crossApply
in interfaceTable<R extends Record>
- See Also:
-
crossApply
Description copied from interface:Table
CROSS 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!
- Specified by:
crossApply
in interfaceTable<R extends Record>
- See Also:
-
crossApply
Description copied from interface:Table
CROSS 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!
- Specified by:
crossApply
in interfaceTable<R extends Record>
- See Also:
-
crossApply
Description copied from interface:Table
CROSS APPLY
a table to this table.- Specified by:
crossApply
in interfaceTable<R extends Record>
- See Also:
-
outerApply
Description copied from interface:Table
OUTER APPLY
a table to this table.- Specified by:
outerApply
in interfaceTable<R extends Record>
-
outerApply
Description copied from interface:Table
OUTER 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!
- Specified by:
outerApply
in interfaceTable<R extends Record>
- See Also:
-
outerApply
Description copied from interface:Table
OUTER 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!
- Specified by:
outerApply
in interfaceTable<R extends Record>
- See Also:
-
outerApply
Description copied from interface:Table
OUTER 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!
- Specified by:
outerApply
in interfaceTable<R extends Record>
- See Also:
-
outerApply
Description copied from interface:Table
OUTER 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!
- Specified by:
outerApply
in interfaceTable<R extends Record>
- See Also:
-
outerApply
Description copied from interface:Table
OUTER APPLY
a table to this table.- Specified by:
outerApply
in interfaceTable<R extends Record>
- See Also:
-
straightJoin
Description copied from interface:Table
STRAIGHT_JOIN
a table to this table.- Specified by:
straightJoin
in interfaceTable<R extends Record>
-
straightJoin
Description copied from interface:Table
STRAIGHT_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!
- Specified by:
straightJoin
in interfaceTable<R extends Record>
- See Also:
-
straightJoin
Description copied from interface:Table
STRAIGHT_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!
- Specified by:
straightJoin
in interfaceTable<R extends Record>
- See Also:
-
straightJoin
Description copied from interface:Table
STRAIGHT_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!
- Specified by:
straightJoin
in interfaceTable<R extends Record>
- See Also:
-
straightJoin
Description copied from interface:Table
STRAIGHT_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!
- Specified by:
straightJoin
in interfaceTable<R extends Record>
- See Also:
-
straightJoin
Description copied from interface:Table
STRAIGHT_JOIN
a table to this table.- Specified by:
straightJoin
in interfaceTable<R extends Record>
- See Also:
-
$schema
Description copied from interface:Qualified
Experimental query object model accessor method, see alsoQOM
. Subject to change in future jOOQ versions, use at your own risk. -
fieldStream
Description copied from interface:Fields
Get all fields known to this type as aStream
.- Specified by:
fieldStream
in interfaceFields
-
field
Description copied from interface:Fields
Get a field known to this type by field reference.This will return:
- A field that is the same as the argument field (by identity comparison).
- A field that is equal to the argument field (exact matching fully qualified name).
- A field that is equal to the argument field (partially matching qualified name).
- A field whose name is equal to the unqualified name of the argument field.
null
otherwise.
If several fields have the same ambiguous name, the first one is returned and a warning is logged.
-
field
Description copied from interface:Fields
Get a field known to this type by index, ornull
if no field is available at the index. -
field
Description copied from interface:Fields
Get a field known to this type by index coerced totype
usingField.coerce(Class)
, ornull
if no field is available at the index.NOTE [#15286]: It is strongly recommended to pass only
Class
references of types supported by jOOQ internally, i.e. types fromSQLDataType
. If you're using any custom data types by means of aConverter
orBinding
, it's better to pass that convertedDataType
reference explicitly toFields.field(Name, DataType)
. -
field
Description copied from interface:Fields
Get a field known to this type by index coerced todataType
usingField.coerce(DataType)
, ornull
if no field is available at the index. -
fields
Description copied from interface:Fields
Get all fields, filtering by some fields.- Specified by:
fields
in interfaceFields
- Parameters:
fields
- The fields to include after looking them up viaFields.field(Field)
.- See Also:
-
fields
Description copied from interface:Fields
Get all fields known to this type, filtering by some unqualified field names.- Specified by:
fields
in interfaceFields
- Parameters:
names
- The unqualified field names to include after looking them up viaFields.field(String)
.- See Also:
-
fields
Description copied from interface:Fields
Get all fields known to this type, filtering by some qualified field names.- Specified by:
fields
in interfaceFields
- Parameters:
names
- The qualified field names to include after looking them up viaFields.field(Name)
.- See Also:
-
fields
Description copied from interface:Fields
Get all fields known to this type, filtering by some field indexes. -
indexOf
Description copied from interface:Fields
Get a field's index from this type.The lookup algorithm is the same as that of
Fields.field(Field)
. -
indexOf
Description copied from interface:Fields
Get a field's index from this type.The lookup algorithm is the same as that of
Fields.field(String)
. -
indexOf
Description copied from interface:Fields
Get a field's index from this type.The lookup algorithm is the same as that of
Fields.field(Name)
. -
types
Description copied from interface:Fields
Get an array of field types for fields known to this type.Entries in the resulting array correspond to
Typed.getType()
for the correspondingField
inFields.fields()
-
type
Description copied from interface:Fields
Get the field type for a given field index, ornull
if no field is available at the index. -
type
Description copied from interface:Fields
Get the field type for a given unqualified field name, ornull
if no field is known to this type by this name.The lookup algorithm is the same as that of
Fields.field(String)
. -
type
Description copied from interface:Fields
Get the field type for a given qualified field name, ornull
if no field is known to this type by this name.The lookup algorithm is the same as that of
Fields.field(Name)
. -
dataTypes
Description copied from interface:Fields
Get an array of field data types for this type.Entries in the resulting array correspond to
Typed.getDataType()
for the correspondingField
inFields.fields()
-
dataType
Description copied from interface:Fields
Get the field data type for a given field index, ornull
if no field is available at the index. -
dataType
Description copied from interface:Fields
Get the field data type for a given qualified field name, ornull
if no field is known to this type by this name.The lookup algorithm is the same as that of
Fields.field(String)
. -
dataType
Description copied from interface:Fields
Get the field data type for a given qualified field name, ornull
if no field is known to this type by this name.The lookup algorithm is the same as that of
Fields.field(Name)
. -
getName
Description copied from interface:Named
The unqualified name of this object. -
getQualifiedName
Description copied from interface:Named
The qualified name of this object.- Specified by:
getQualifiedName
in interfaceNamed
-
getUnqualifiedName
Description copied from interface:Named
The unqualified name of this object.- Specified by:
getUnqualifiedName
in interfaceNamed
-
getComment
Description copied from interface:Named
The comment on this object.This is the same as calling
Named.getCommentPart()
and thenComment.getComment()
.- Specified by:
getComment
in interfaceNamed
-
getCommentPart
Description copied from interface:Named
The comment on this object as aQueryPart
.- Specified by:
getCommentPart
in interfaceNamed
-
$name
Description copied from interface:Named
Experimental query object model accessor method, see alsoQOM
. Subject to change in future jOOQ versions, use at your own risk. -
rendersContent
Subclasses may override this- Specified by:
rendersContent
in interfaceQueryPartInternal
-
declaresFields
public boolean declaresFields()Subclasses may override this- Specified by:
declaresFields
in interfaceQueryPartInternal
-
declaresWindows
public boolean declaresWindows()Subclasses may override this- Specified by:
declaresWindows
in interfaceQueryPartInternal
-
declaresCTE
public boolean declaresCTE()Subclasses may override this- Specified by:
declaresCTE
in interfaceQueryPartInternal
-
declaresParameters
Subclasses may override this- Specified by:
declaresParameters
in interfaceQueryPartInternal
-
generatesCast
public boolean generatesCast()Subclasses may override this- Specified by:
generatesCast
in interfaceQueryPartInternal
-
toString
Description copied from interface:QueryPart
Render a SQL string representation of thisQueryPart
.For improved debugging, this renders a SQL string of this
QueryPart
with inlined bind variables. If thisQueryPart
isAttachable
, then the attachedConfiguration
may be used for rendering the SQL string, includingSQLDialect
andSettings
. Do note that mostQueryPart
instances are not attached to aConfiguration
, and thus there is no guarantee that the SQL string will make sense in the context of a specific database. -
create
Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.Internal convenience method -
create
Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.Internal convenience method -
create
Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.Internal convenience method -
translate
Internal convenience method
-
TableImpl(Name)
instead (or re-generated your code).