Top Description Fields Constructors Methods
org.jooq.impl

pack-priv abstract Class AbstractResultQuery<R extends org.jooq.Record>

extends AbstractQuery<R extends Record>
implements ResultQueryTrait<R extends Record>
Class Inheritance
All Implemented Interfaces
org.jooq.impl.ResultQueryTrait, org.jooq.impl.FieldsTrait, org.jooq.Fields, org.jooq.impl.Mappable, org.jooq.CloseableResultQuery, org.jooq.CloseableQuery, java.lang.AutoCloseable, org.jooq.Query, org.jooq.AttachableQueryPart, org.jooq.QueryPart, java.io.Serializable, org.jooq.Attachable, org.jooq.Statement, org.jooq.ResultQuery, org.jooq.Publisher, java.util.concurrent.Flow.Publisher, org.reactivestreams.Publisher, java.lang.Iterable, org.jooq.QueryPartInternal
Known Direct Subclasses
org.jooq.impl.SQLResultQuery, org.jooq.impl.FetchCount, org.jooq.impl.SelectQueryImpl
Static Imports
org.jooq.SQLDialect.POSTGRES, .SQLDialect.YUGABYTEDB, org.jooq.impl.DSL.name, .Tools.consumeResultSets, .Tools.executeStatementAndGetFirstResultSet

A query that returns a Result
Author
Lukas Eder

Field Summary

Modifier and TypeField and Description
private transient boolean
private Collection<? extends Field<?>>
private Table<?>
private transient Cursor<R>
private int
private final Intern
private transient boolean
private static final JooqLogger
private transient boolean
private int
private static final Set<SQLDialect>
private Result<R>
private ResultsImpl
private int
private int
private int
Inherited from org.jooq.impl.AbstractQuery:
renderedstatementstatementExecutionCount

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public final CloseableResultQuery<R>
bind(String
The named parameter name. If this is a number, then this is the same as calling bind(int, Object)
param
,
Object
The new bind value.
value
)

Overrides org.jooq.impl.AbstractQuery.bind.

Implements org.jooq.CloseableResultQuery.bind, org.jooq.CloseableQuery.bind.

Bind a new value to a named parameter.
public final CloseableResultQuery<R>
bind(int
The parameter index, starting with 1
index
,
Object
The new bind value.
value
)

Overrides org.jooq.impl.AbstractQuery.bind.

Implements org.jooq.CloseableResultQuery.bind, org.jooq.CloseableQuery.bind.

Bind a new value to an indexed parameter.
pack-priv final Collection<? extends Field<?>>
public final <X extends Record> CloseableResultQuery<X>
coerce(Table<X> table)

Implements org.jooq.CloseableResultQuery.coerce.

Coerce the result record type of this query to that of a table.
public final CloseableResultQuery<Record>
coerce(Collection<? extends Field<?>> fields)

Implements org.jooq.CloseableResultQuery.coerce.

Coerce the result record type of this query to that of a set of fields.
protected final int
execute(ExecuteContext ctx, ExecuteListener listener)

Overrides org.jooq.impl.AbstractQuery.execute.

Default implementation for query execution using a prepared statement.
public final Result<R>
fetch()

Implements org.jooq.ResultQuery.fetch.

Execute the query and return the generated result.
public final Cursor<R>
fetchLazy()

Overrides default org.jooq.impl.ResultQueryTrait.fetchLazy.

Execute the query and "lazily" return the generated result.
public final Cursor<R>
fetchLazyNonAutoClosing()

Overrides default org.jooq.impl.ResultQueryTrait.fetchLazyNonAutoClosing.

When we manage the lifecycle of a returned Cursor internally in jOOQ, then the cursor must not be auto-closed.
public final Results
fetchMany()

Overrides default org.jooq.impl.ResultQueryTrait.fetchMany.

Execute a query, possibly returning several result sets.
public final CloseableResultQuery<R>
fetchSize(int rows)

Implements org.jooq.CloseableResultQuery.fetchSize.

Specify the fetch size of the underlying Statement.
pack-priv final int
public final Class<? extends R>
getRecordType()

Implements org.jooq.ResultQuery.getRecordType.

The record type produced by this query.
pack-priv abstract Class<? extends R>
public final Result<R>
getResult()

Implements org.jooq.ResultQuery.getResult.

Return the result generated by a previous call to execute().
public final CloseableResultQuery<R>
intern(Field<?>...
The fields whose values should be interned
fields
)

Implements org.jooq.CloseableResultQuery.intern.

Deprecated as a consequence of Field being deprecated.
Specify a set of fields whose values should be interned.
public final CloseableResultQuery<R>
intern(int...
The field indexes whose values should be interned
fieldIndexes
)

Implements org.jooq.CloseableResultQuery.intern.

Specify a set of field indexes whose values should be interned.
public final CloseableResultQuery<R>
intern(String...
The field names whose values should be interned
fieldNameStrings
)

Implements org.jooq.CloseableResultQuery.intern.

Specify a set of field names whose values should be interned.
public final CloseableResultQuery<R>
intern(Name...
The field names whose values should be interned
fieldNames
)

Implements org.jooq.CloseableResultQuery.intern.

Specify a set of field names whose values should be interned.
protected final boolean
keepResultSet()

Overrides org.jooq.impl.AbstractQuery.keepResultSet.

Default implementation to indicate whether this query should close the ResultSet after execution.
public final CloseableResultQuery<R>
keepStatement(boolean
Whether to keep the underlying statement open
k
)

Overrides org.jooq.impl.AbstractQuery.keepStatement.

Implements org.jooq.CloseableResultQuery.keepStatement, org.jooq.CloseableQuery.keepStatement.

Keep the query's underlying statement open after execution.
public final CloseableResultQuery<R>
maxRows(int rows)

Implements org.jooq.CloseableResultQuery.maxRows.

Specify the maximum number of rows returned by the underlying Statement.
public final CloseableResultQuery<R>
protected final void
prepare(ExecuteContext ctx)

Overrides org.jooq.impl.AbstractQuery.prepare.

Default implementation for preparing a statement.
public final CloseableResultQuery<R>
queryTimeout(int timeout)

Overrides org.jooq.impl.AbstractQuery.queryTimeout.

Implements org.jooq.CloseableResultQuery.queryTimeout, org.jooq.CloseableQuery.queryTimeout.

Specify the query timeout in number of seconds for the underlying JDBC Statement.
public final CloseableResultQuery<R>
resultSetConcurrency(int concurrency)

Implements org.jooq.CloseableResultQuery.resultSetConcurrency.

Specify the ResultSet concurrency of ResultSet objects created by jOOQ.
public final CloseableResultQuery<R>
resultSetHoldability(int holdability)

Implements org.jooq.CloseableResultQuery.resultSetHoldability.

Specify the ResultSet holdability of ResultSet objects created by jOOQ.
public final CloseableResultQuery<R>
resultSetType(int type)

Implements org.jooq.CloseableResultQuery.resultSetType.

Specify the ResultSet type of ResultSet objects created by jOOQ.
Inherited from org.jooq.impl.AbstractQuery:
cancelcloseconnectionexecuteexecuteAsyncexecuteAsyncisExecutablekeepStatementtoSQLSemiColon

Field Detail

autoclosingback to summary
private transient boolean autoclosing
coerceFieldsback to summary
private Collection<? extends Field<?>> coerceFields
coerceTableback to summary
private Table<?> coerceTable
cursorback to summary
private transient Cursor<R> cursor
fetchSizeback to summary
private int fetchSize
internback to summary
private final Intern intern
lazyback to summary
private transient boolean lazy
logback to summary
private static final JooqLogger log

Hides org.jooq.impl.AbstractQuery.log.

manyback to summary
private transient boolean many
maxRowsback to summary
private int maxRows
REPORT_FETCH_SIZE_WITH_AUTOCOMMITback to summary
private static final Set<SQLDialect> REPORT_FETCH_SIZE_WITH_AUTOCOMMIT
resultback to summary
private Result<R> result
resultsback to summary
private ResultsImpl results
resultSetConcurrencyback to summary
private int resultSetConcurrency
resultSetHoldabilityback to summary
private int resultSetHoldability
resultSetTypeback to summary
private int resultSetType

Constructor Detail

AbstractResultQueryback to summary
pack-priv AbstractResultQuery(Configuration configuration)

Method Detail

bindback to summary
public final CloseableResultQuery<R> bind(String param, Object value)

Overrides org.jooq.impl.AbstractQuery.bind.

Implements org.jooq.CloseableResultQuery.bind, org.jooq.CloseableQuery.bind.

Doc from org.jooq.Query.bind.

Bind a new value to a named parameter.

[#1886] If the bind value with name param is inlined ( Param#isInline()) or if this query was created with StatementType#STATIC_STATEMENT and there is an underlying PreparedStatement kept open because of keepStatement(boolean), the underlying PreparedStatement will be closed automatically in order for new bind values to have an effect.

Parameters
param:String

The named parameter name. If this is a number, then this is the same as calling bind(int, Object)

value:Object

The new bind value.

Annotations
@SuppressWarnings:unchecked
@Override
bindback to summary
public final CloseableResultQuery<R> bind(int index, Object value)

Overrides org.jooq.impl.AbstractQuery.bind.

Implements org.jooq.CloseableResultQuery.bind, org.jooq.CloseableQuery.bind.

Doc from org.jooq.Query.bind.

Bind a new value to an indexed parameter.

[#1886] If the bind value at index is inlined ( Param#isInline()) or if this query was created with StatementType#STATIC_STATEMENT and there is an underlying PreparedStatement kept open because of keepStatement(boolean), the underlying PreparedStatement will be closed automatically in order for new bind values to have an effect.

Parameters
index:int

The parameter index, starting with 1

value:Object

The new bind value.

Annotations
@SuppressWarnings:unchecked
@Override
coerceback to summary
pack-priv final Collection<? extends Field<?>> coerce()
coerceback to summary
public final <X extends Record> CloseableResultQuery<X> coerce(Table<X> table)

Implements org.jooq.CloseableResultQuery.coerce.

Doc from org.jooq.ResultQuery.coerce.

Coerce the result record type of this query to that of a table.

Annotations
@SuppressWarnings:unchecked
@Override
coerceback to summary
public final CloseableResultQuery<Record> coerce(Collection<? extends Field<?>> fields)

Implements org.jooq.CloseableResultQuery.coerce.

Doc from org.jooq.ResultQuery.coerce.

Coerce the result record type of this query to that of a set of fields.

Annotations
@SuppressWarnings:unchecked
@Override
executeback to summary
protected final int execute(ExecuteContext ctx, ExecuteListener listener) throws SQLException

Overrides org.jooq.impl.AbstractQuery.execute.

Doc from org.jooq.impl.AbstractQuery.execute.

Default implementation for query execution using a prepared statement. Subclasses may override this method.

Annotations
@Override
fetchback to summary
public final Result<R> fetch()

Implements org.jooq.ResultQuery.fetch.

Doc from org.jooq.ResultQuery.fetch.

Execute the query and return the generated result.

The result and its contained records are attached to the original Configuration by default. Use Settings#isAttachRecords() to override this behaviour.

Lifecycle guarantees

This method completes the whole ConnectionProvider and ExecuteListener lifecycles, eagerly fetching all results into memory. Underlying JDBC ResultSets are always closed. Underlying JDBC PreparedStatements are closed, unless ResultQuery#keepStatement(boolean) is set.

In order to keep open ResultSets and fetch records lazily, use fetchLazy() instead and then operate on Cursor.

This method is not affected by Settings#getFetchIntermediateResult().

Returns:Result<R>

The result. This will never be null.

Annotations
@Override
fetchLazyback to summary
public final Cursor<R> fetchLazy()

Overrides default org.jooq.impl.ResultQueryTrait.fetchLazy.

Doc from org.jooq.ResultQuery.fetchLazy.

Execute the query and "lazily" return the generated result.

The returned Cursor holds a reference to the executed PreparedStatement and the associated ResultSet. Data can be fetched (or iterated over) lazily, fetching records from the ResultSet one by one.

Depending on your JDBC driver's default behaviour, this may load the whole database result into the driver's memory. In order to indicate to the driver that you may not want to fetch all records at once, use ResultQuery#fetchSize(int) or Settings#setFetchSize(Integer) prior to calling this method.

Client code is responsible for closing the cursor after use.

Returns:Cursor<R>

The resulting cursor. This will never be null.

Annotations
@Override
fetchLazyNonAutoClosingback to summary
public final Cursor<R> fetchLazyNonAutoClosing()

Overrides default org.jooq.impl.ResultQueryTrait.fetchLazyNonAutoClosing.

When we manage the lifecycle of a returned Cursor internally in jOOQ, then the cursor must not be auto-closed.

Annotations
@Override
fetchManyback to summary
public final Results fetchMany()

Overrides default org.jooq.impl.ResultQueryTrait.fetchMany.

Doc from org.jooq.ResultQuery.fetchMany.

Execute a query, possibly returning several result sets.

Example (Sybase ASE):


String sql = "sp_help 'my_table'";

The result and its contained records are attached to the original Configuration by default. Use Settings#isAttachRecords() to override this behaviour.

Returns:Results

The resulting records. This will never be null.

Annotations
@Override
fetchSizeback to summary
public final CloseableResultQuery<R> fetchSize(int rows)

Implements org.jooq.CloseableResultQuery.fetchSize.

Doc from org.jooq.ResultQuery.fetchSize.

Specify the fetch size of the underlying Statement.

Regardless of this setting, fetchLazy() is the only way in jOOQ not to fetch all data in memory. However, you may influence how your JDBC driver interacts with your database through specifying a fetch size.

Dialect-specific remarks:

Annotations
@Override
fetchSizeback to summary
pack-priv final int fetchSize()
getRecordTypeback to summary
public final Class<? extends R> getRecordType()

Implements org.jooq.ResultQuery.getRecordType.

Doc from org.jooq.ResultQuery.getRecordType.

The record type produced by this query.

Annotations
@SuppressWarnings:unchecked
@Override
getRecordType0back to summary
pack-priv abstract Class<? extends R> getRecordType0()
getResultback to summary
public final Result<R> getResult()

Implements org.jooq.ResultQuery.getResult.

Doc from org.jooq.ResultQuery.getResult.

Return the result generated by a previous call to execute().

Returns:Result<R>

The result or null if no call to execute() was done previously.

Annotations
@Override
internback to summary
public final CloseableResultQuery<R> intern(Field<?>... fields)

Implements org.jooq.CloseableResultQuery.intern.

Doc from org.jooq.ResultQuery.intern.

Deprecated

as a consequence of Field being deprecated. See corresponding docs for further information.

Specify a set of fields whose values should be interned.

Unlike Result's intern() methods, this already interns values right after fetching them from a JDBC result set. See Result#intern(int...) for more details.

Parameters
fields:Field<?>[]

The fields whose values should be interned

Returns:CloseableResultQuery<R>

The same result query

Annotations
@Override
internback to summary
public final CloseableResultQuery<R> intern(int... fieldIndexes)

Implements org.jooq.CloseableResultQuery.intern.

Doc from org.jooq.ResultQuery.intern.

Specify a set of field indexes whose values should be interned.

Unlike Result's intern() methods, this already interns values right after fetching them from a JDBC result set. See Result#intern(int...) for more details.

Parameters
fieldIndexes:int[]

The field indexes whose values should be interned

Returns:CloseableResultQuery<R>

The same result query

Annotations
@Override
internback to summary
public final CloseableResultQuery<R> intern(String... fieldNameStrings)

Implements org.jooq.CloseableResultQuery.intern.

Doc from org.jooq.ResultQuery.intern.

Specify a set of field names whose values should be interned.

Unlike Result's intern() methods, this already interns values right after fetching them from a JDBC result set. See Result#intern(String...) for more details.

Parameters
fieldNameStrings:String[]

The field names whose values should be interned

Returns:CloseableResultQuery<R>

The same result query

Annotations
@Override
internback to summary
public final CloseableResultQuery<R> intern(Name... fieldNames)

Implements org.jooq.CloseableResultQuery.intern.

Doc from org.jooq.ResultQuery.intern.

Specify a set of field names whose values should be interned.

Unlike Result's intern() methods, this already interns values right after fetching them from a JDBC result set. See Result#intern(Name...) for more details.

Parameters
fieldNames:Name[]

The field names whose values should be interned

Returns:CloseableResultQuery<R>

The same result query

Annotations
@Override
keepResultSetback to summary
protected final boolean keepResultSet()

Overrides org.jooq.impl.AbstractQuery.keepResultSet.

Doc from org.jooq.impl.AbstractQuery.keepResultSet.

Default implementation to indicate whether this query should close the ResultSet after execution. Subclasses may override this method.

Annotations
@Override
keepStatementback to summary
public final CloseableResultQuery<R> keepStatement(boolean k)

Overrides org.jooq.impl.AbstractQuery.keepStatement.

Implements org.jooq.CloseableResultQuery.keepStatement, org.jooq.CloseableQuery.keepStatement.

Doc from org.jooq.Query.keepStatement.

Keep the query's underlying statement open after execution.

This indicates to jOOQ that the query's underlying Statement or PreparedStatement should be kept open after execution. If it is kept open, client code is responsible for properly closing it using CloseableQuery#close(), e.g. via a try-with-resources statement.

Parameters
k:boolean

Whether to keep the underlying statement open

Annotations
@SuppressWarnings:unchecked
@Override
maxRowsback to summary
public final CloseableResultQuery<R> maxRows(int rows)

Implements org.jooq.CloseableResultQuery.maxRows.

Doc from org.jooq.ResultQuery.maxRows.

Specify the maximum number of rows returned by the underlying Statement.

This is not the same as setting a LIMIT … OFFSET clause onto the statement, where the result set is restricted within the database.

Annotations
@Override
poolableback to summary
public final CloseableResultQuery<R> poolable(boolean poolable)

Overrides org.jooq.impl.AbstractQuery.poolable.

Implements org.jooq.CloseableResultQuery.poolable, org.jooq.CloseableQuery.poolable.

Doc from org.jooq.Query.poolable.

Specify whether any JDBC java.sql.Statement created by this query should be java.sql.Statement#setPoolable(boolean).

If this method is not called on jOOQ types, then jOOQ will not specify the flag on JDBC either, resulting in JDBC's default behaviour.

Annotations
@SuppressWarnings:unchecked
@Override
prepareback to summary
protected final void prepare(ExecuteContext ctx) throws SQLException

Overrides org.jooq.impl.AbstractQuery.prepare.

Doc from org.jooq.impl.AbstractQuery.prepare.

Default implementation for preparing a statement. Subclasses may override this method.

Annotations
@Override
queryTimeoutback to summary
public final CloseableResultQuery<R> queryTimeout(int timeout)

Overrides org.jooq.impl.AbstractQuery.queryTimeout.

Implements org.jooq.CloseableResultQuery.queryTimeout, org.jooq.CloseableQuery.queryTimeout.

Doc from org.jooq.Query.queryTimeout.

Specify the query timeout in number of seconds for the underlying JDBC Statement.

Annotations
@SuppressWarnings:unchecked
@Override
resultSetConcurrencyback to summary
public final CloseableResultQuery<R> resultSetConcurrency(int concurrency)

Implements org.jooq.CloseableResultQuery.resultSetConcurrency.

Doc from org.jooq.ResultQuery.resultSetConcurrency.

Specify the ResultSet concurrency of ResultSet objects created by jOOQ.

This will affect the way you may perceive ResultSet objects obtained from any of these methods:

Annotations
@Override
resultSetHoldabilityback to summary
public final CloseableResultQuery<R> resultSetHoldability(int holdability)

Implements org.jooq.CloseableResultQuery.resultSetHoldability.

Doc from org.jooq.ResultQuery.resultSetHoldability.

Specify the ResultSet holdability of ResultSet objects created by jOOQ.

This will affect the way you may perceive ResultSet objects obtained from any of these methods:

Annotations
@Override
resultSetTypeback to summary
public final CloseableResultQuery<R> resultSetType(int type)

Implements org.jooq.CloseableResultQuery.resultSetType.

Doc from org.jooq.ResultQuery.resultSetType.

Specify the ResultSet type of ResultSet objects created by jOOQ.

This will affect the way you may perceive ResultSet objects obtained from any of these methods:

Annotations
@Override