public interface Results extends List<Result<Record>>, Attachable
Result
and update counts that can be returned by
ResultQuery.fetchMany()
calls and other calls that produce multiple
cursors and update counts.
For backwards-compatibility (e.g. with ResultQuery.fetchMany()
), this
type extends List
containing only the Result
, not the rows,
update counts, exceptions of interleaved updates. In order to get them all,
call resultsOrRows()
upon the results.
Some databases support raising several errors or exceptions per statement
batch (e.g. SQLDialect.SQLSERVER
):
INSERT INTO t VALUES (1),(2),(3);
RAISERROR('message 1', 16, 2, 3);
RAISERROR('message 2', 16, 2, 3);
SELECT * FROM t;
RAISERROR('message 3', 16, 2, 3);
The above batch will produce:
By default (or when explicitly specifying ThrowExceptions.THROW_ALL
in Settings.getThrowExceptions()
), this particular batch will produce
a single exception corresponding to "message 1"
, with additional
exceptions for "message 2"
and "message 3"
attached
to SQLException.getNextException()
, recursively.
When specifying ThrowExceptions.THROW_FIRST
, only
"message 1"
is propagated. When specifying
ThrowExceptions.THROW_NONE
, then all exceptions are collected as
results and are made available through resultsOrRows()
in
ResultOrRows.exception()
.
Modifier and Type | Method and Description |
---|---|
void |
attach(Configuration configuration)
Attach all results and all of their contained records to a new
Configuration . |
void |
detach()
Detach all results and all of their contained records from their current
Configuration . |
List<ResultOrRows> |
resultsOrRows()
All the results or update counts in their order as fetched via JDBC.
|
add, add, addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray
parallelStream, removeIf, stream
configuration
List<ResultOrRows> resultsOrRows()
While List.iterator()
and all the other methods inherited from the
List
API return the Result
objects only, this method also
includes update counts that may have occurred between two results.
It can be safely assumed that:
result.resultsOrRows()
.stream()
.filter(r -> r.result() != null)
.map(r -> r.result())
.collect(Collectors.toList())
.equals(result);
void attach(Configuration configuration)
Configuration
.attach
in interface Attachable
configuration
- A configuration or null
, if you wish to
detach this Attachable
from its previous
configuration.void detach()
Configuration
.
This is the same as calling attach(null)
.
detach
in interface Attachable
Copyright © 2019. All rights reserved.