Interface Row
-
- All Superinterfaces:
FieldOrRow,QueryPart,java.io.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(java.lang.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, java.lang.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(java.lang.String fieldName)Get a specific field from this row.<T> Field<T>field(java.lang.String fieldName, java.lang.Class<T> type)Get a specific field from this row and coerce it totype.<T> Field<T>field(java.lang.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, java.lang.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(java.lang.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.java.util.stream.Stream<Field<?>>fieldStream()Get the fields from this row as aStream.intindexOf(java.lang.String fieldName)Get a field's index from this row.intindexOf(Field<?> field)Get a field's index from this row.intindexOf(Name fieldName)Get a field's index from this row.ConditionisNotNull()Check if this row value expression contains noNULLvalues.ConditionisNull()Check if this row value expression contains onlyNULLvalues.intsize()Get the degree of this row value expression.java.lang.Class<?>type(int fieldIndex)Get the type for a given field index.java.lang.Class<?>type(java.lang.String fieldName)Get the type for a given field name.java.lang.Class<?>type(Name fieldName)Get the type for a given field name.java.lang.Class<?>[]types()Get an array of types for this row.
-
-
-
Method Detail
-
size
int size()
Get the degree of this row value expression.
-
fieldStream
java.util.stream.Stream<Field<?>> fieldStream()
Get the fields from this row as aStream.
-
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.
nullotherwise.
- Type Parameters:
T- The generic field type- Parameters:
field- The field to fetch- Returns:
- The field itself or an aliased field
-
field
Field<?> field(java.lang.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(java.lang.String fieldName, java.lang.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(java.lang.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, java.lang.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, java.lang.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(java.lang.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
-1if the field is not contained in thisRow
-
indexOf
int indexOf(java.lang.String fieldName)
Get a field's index from this row.- Parameters:
fieldName- The field name to look for- Returns:
- The field's index or
-1if 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
-1if the field is not contained in thisRow
-
types
java.lang.Class<?>[] types()
Get an array of types for this row.Entries in the resulting array correspond to
Field.getType()for the correspondingFieldinfields()
-
type
java.lang.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
java.lang.Class<?> type(java.lang.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
java.lang.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
Field.getDataType()for the correspondingFieldinfields()
-
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(java.lang.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 onlyNULLvalues.Row NULL predicates can be emulated in those databases that do not support such predicates natively:
(A, B) IS NULLis equivalent toA IS NULL AND B IS NULL
-
isNotNull
@Support Condition isNotNull()
Check if this row value expression contains noNULLvalues.Row NOT NULL predicates can be emulated in those databases that do not support such predicates natively:
(A, B) IS NOT NULLis equivalent toA IS NOT NULL AND B IS NOT NULLNote 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)
-
-