-
- All Superinterfaces:
FieldOrRow
,QueryPart
,Serializable
- All Known Subinterfaces:
Row1<T1>
,Row10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>
,Row11<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>
,Row12<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12>
,Row13<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13>
,Row14<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14>
,Row15<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15>
,Row16<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>
,Row17<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17>
,Row18<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18>
,Row19<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>
,Row2<T1,T2>
,Row20<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>
,Row21<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>
,Row22<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>
,Row3<T1,T2,T3>
,Row4<T1,T2,T3,T4>
,Row5<T1,T2,T3,T4,T5>
,Row6<T1,T2,T3,T4,T5,T6>
,Row7<T1,T2,T3,T4,T5,T6,T7>
,Row8<T1,T2,T3,T4,T5,T6,T7,T8>
,Row9<T1,T2,T3,T4,T5,T6,T7,T8,T9>
,RowN
public interface Row extends FieldOrRow
A row value expression.Row value expressions are mainly useful for use in predicates, when comparing several values in one go, which can be more elegant than expanding the row value expression predicate in other equivalent syntaxes. This is especially true for non-equality predicates. For instance, the following two predicates are equivalent in SQL:
(A, B) > (X, Y) (A > X) OR (A = X AND B > Y)
Example:
// Assuming import static org.jooq.impl.DSL.*; using(configuration) .select() .from(CUSTOMER) .where(row(CUSTOMER.FIRST_NAME, CUSTOMER.LAST_NAME).in( select(ACTOR.FIRST_NAME, ACTOR.LAST_NAME).from(ACTOR) )) .fetch();
Note: Not all databases support row value expressions, but many row value expression operations can be emulated on all databases. See relevant row value expression method Javadocs for details.
Instances can be created using
DSL.row(Object...)
and overloads.- Author:
- Lukas Eder
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description DataType<?>
dataType(int fieldIndex)
Get the data type for a given field index.DataType<?>
dataType(String fieldName)
Get the data type for a given field name.DataType<?>
dataType(Name fieldName)
Get the data type for a given field name.DataType<?>[]
dataTypes()
Get an array of data types for this row.Field<?>
field(int fieldIndex)
Get a specific field from this row.<T> Field<T>
field(int fieldIndex, Class<T> type)
Get a specific field from this row and coerce it totype
.<T> Field<T>
field(int fieldIndex, DataType<T> dataType)
Get a specific field from this row and coerce it todataType
.Field<?>
field(String fieldName)
Get a specific field from this row.<T> Field<T>
field(String fieldName, Class<T> type)
Get a specific field from this row and coerce it totype
.<T> Field<T>
field(String fieldName, DataType<T> dataType)
Get a specific field from this row and coerce it todataType
.<T> Field<T>
field(Field<T> field)
Get a specific field from this row.Field<?>
field(Name fieldName)
Get a specific field from this row.<T> Field<T>
field(Name fieldName, Class<T> type)
Get a specific field from this row and coerce it totype
.<T> Field<T>
field(Name fieldName, DataType<T> dataType)
Get a specific field from this row and coerce it todataType
.Field<?>[]
fields()
Get all fields from this row.Field<?>[]
fields(int... fieldIndexes)
Get all fields from this row, providing some field indexes.Field<?>[]
fields(String... fieldNames)
Get all fields from this row, providing some field names.Field<?>[]
fields(Field<?>... fields)
Get all fields from this row, providing some fields.Field<?>[]
fields(Name... fieldNames)
Get all fields from this row, providing some field names.Stream<Field<?>>
fieldStream()
Get the fields from this row as aStream
.int
indexOf(String fieldName)
Get a field's index from this row.int
indexOf(Field<?> field)
Get a field's index from this row.int
indexOf(Name fieldName)
Get a field's index from this row.Condition
isNotNull()
Check if this row value expression contains noNULL
values.Condition
isNull()
Check if this row value expression contains onlyNULL
values.int
size()
Get the degree of this row value expression.Class<?>
type(int fieldIndex)
Get the type for a given field index.Class<?>
type(String fieldName)
Get the type for a given field name.Class<?>
type(Name fieldName)
Get the type for a given field name.Class<?>[]
types()
Get an array of types for this row.
-
-
-
Method Detail
-
size
int size()
Get the degree of this row value expression.
-
field
<T> Field<T> field(Field<T> field)
Get a specific field from this row.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 name of the argument field.
null
otherwise.
- Type Parameters:
T
- The generic field type- Parameters:
field
- The field to fetch- Returns:
- The field itself or an aliased field
-
field
Field<?> field(String fieldName)
Get a specific field from this row.- Parameters:
fieldName
- The field to fetch- Returns:
- The field with the given name
-
field
<T> Field<T> field(String fieldName, Class<T> type)
Get a specific field from this row and coerce it totype
.- Parameters:
fieldName
- The field to fetchtype
- The type to coerce the resulting field to- Returns:
- The field with the given name
-
field
<T> Field<T> field(String fieldName, DataType<T> dataType)
Get a specific field from this row and coerce it todataType
.- Parameters:
fieldName
- The field to fetchdataType
- The type to coerce the resulting field to- Returns:
- The field with the given name
-
field
Field<?> field(Name fieldName)
Get a specific field from this row.- Parameters:
fieldName
- The field to fetch- Returns:
- The field with the given name
-
field
<T> Field<T> field(Name fieldName, Class<T> type)
Get a specific field from this row and coerce it totype
.- Parameters:
fieldName
- The field to fetchtype
- The type to coerce the resulting field to- Returns:
- The field with the given name
-
field
<T> Field<T> field(Name fieldName, DataType<T> dataType)
Get a specific field from this row and coerce it todataType
.- Parameters:
fieldName
- The field to fetchdataType
- The type to coerce the resulting field to- Returns:
- The field with the given name
-
field
Field<?> field(int fieldIndex)
Get a specific field from this row.- Parameters:
fieldIndex
- The field's index of the field to fetch- Returns:
- The field with the given name
-
field
<T> Field<T> field(int fieldIndex, Class<T> type)
Get a specific field from this row and coerce it totype
.- Parameters:
fieldIndex
- The field's index of the field to fetchtype
- The type to coerce the resulting field to- Returns:
- The field with the given name
-
field
<T> Field<T> field(int fieldIndex, DataType<T> dataType)
Get a specific field from this row and coerce it todataType
.- Parameters:
fieldIndex
- The field's index of the field to fetchdataType
- The type to coerce the resulting field to- Returns:
- The field with the given name
-
fields
Field<?>[] fields()
Get all fields from this row.- Returns:
- All available fields
-
fields
Field<?>[] fields(Field<?>... fields)
Get all fields from this row, providing some fields.- Returns:
- All available fields
- See Also:
field(Field)
-
fields
Field<?>[] fields(String... fieldNames)
Get all fields from this row, providing some field names.- Returns:
- All available fields
- See Also:
field(String)
-
fields
Field<?>[] fields(Name... fieldNames)
Get all fields from this row, providing some field names.- Returns:
- All available fields
- See Also:
field(Name)
-
fields
Field<?>[] fields(int... fieldIndexes)
Get all fields from this row, providing some field indexes.- Returns:
- All available fields
- See Also:
field(int)
-
indexOf
int indexOf(Field<?> field)
Get a field's index from this row.- Parameters:
field
- The field to look for- Returns:
- The field's index or
-1
if the field is not contained in thisRow
-
indexOf
int indexOf(String fieldName)
Get a field's index from this row.- Parameters:
fieldName
- The field name to look for- Returns:
- The field's index or
-1
if the field is not contained in thisRow
-
indexOf
int indexOf(Name fieldName)
Get a field's index from this row.- Parameters:
fieldName
- The field name to look for- Returns:
- The field's index or
-1
if the field is not contained in thisRow
-
types
Class<?>[] types()
Get an array of types for this row.Entries in the resulting array correspond to
Typed.getType()
for the correspondingField
infields()
-
type
Class<?> type(int fieldIndex)
Get the type for a given field index.- Parameters:
fieldIndex
- The field's index of the field's type to fetch- Returns:
- The field's type
-
type
Class<?> type(String fieldName)
Get the type for a given field name.- Parameters:
fieldName
- The field's name of the field's type to fetch- Returns:
- The field's type
-
type
Class<?> type(Name fieldName)
Get the type for a given field name.- Parameters:
fieldName
- The field's name of the field's type to fetch- Returns:
- The field's type
-
dataTypes
DataType<?>[] dataTypes()
Get an array of data types for this row.Entries in the resulting array correspond to
Typed.getDataType()
for the correspondingField
infields()
-
dataType
DataType<?> dataType(int fieldIndex)
Get the data type for a given field index.- Parameters:
fieldIndex
- The field's index of the field's data type to fetch- Returns:
- The field's data type
-
dataType
DataType<?> dataType(String fieldName)
Get the data type for a given field name.- Parameters:
fieldName
- The field's name of the field's data type to fetch- Returns:
- The field's data type
-
dataType
DataType<?> dataType(Name fieldName)
Get the data type for a given field name.- Parameters:
fieldName
- The field's name of the field's data type to fetch- Returns:
- The field's data type
-
isNull
@Support Condition isNull()
Check if this row value expression contains onlyNULL
values.Row NULL predicates can be emulated in those databases that do not support such predicates natively:
(A, B) IS NULL
is equivalent toA IS NULL AND B IS NULL
-
isNotNull
@Support Condition isNotNull()
Check if this row value expression contains noNULL
values.Row NOT NULL predicates can be emulated in those databases that do not support such predicates natively:
(A, B) IS NOT NULL
is equivalent toA IS NOT NULL AND B IS NOT NULL
Note that the two following predicates are NOT equivalent:
(A, B) IS NOT NULL
, which is the same as(A IS NOT NULL) AND (B IS NOT NULL)
NOT((A, B) IS NULL)
, which is the same as(A IS NOT NULL) OR (B IS NOT NULL)
-
-