Module org.jooq
Package org.jooq

Interface Row2<T1,​T2>

All Superinterfaces:
FieldOrRow, Fields, Named, QueryPart, Row, SelectField<Record2<T1,​T2>>, SelectFieldOrAsterisk, Serializable, Typed<Record2<T1,​T2>>

public interface Row2<T1,​T2> extends Row, SelectField<Record2<T1,​T2>>
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