public class BatchingConnection extends java.lang.Object implements ReactiveConnection
ReactiveConnection
that automatically performs batching
of insert, update, and delete statements, relieving the client
persister code of the responsibility to manage batching. Actual
SQL statements are delegated to a given ReactiveConnection
which only supports explicit batching using update(String, List)
.
Note that in Hibernate core, the responsibilities of this class
are handled by JdbcCoordinator
and the Batch
interface.
However, the model used there is not easily adaptable to the reactive
paradigm.
ReactiveConnection.Expectation, ReactiveConnection.Result
Constructor and Description |
---|
BatchingConnection(ReactiveConnection delegate,
int batchSize) |
Modifier and Type | Method and Description |
---|---|
java.util.concurrent.CompletionStage<java.lang.Void> |
beginTransaction() |
void |
close() |
java.util.concurrent.CompletionStage<java.lang.Void> |
commitTransaction() |
java.util.concurrent.CompletionStage<java.lang.Void> |
execute(java.lang.String sql) |
java.util.concurrent.CompletionStage<java.lang.Void> |
executeBatch() |
java.util.concurrent.CompletionStage<java.lang.Void> |
executeOutsideTransaction(java.lang.String sql) |
java.util.concurrent.CompletionStage<java.lang.Long> |
insertAndSelectIdentifier(java.lang.String sql,
java.lang.Object[] paramValues) |
java.util.concurrent.CompletionStage<java.lang.Void> |
rollbackTransaction() |
java.util.concurrent.CompletionStage<ReactiveConnection.Result> |
select(java.lang.String sql) |
java.util.concurrent.CompletionStage<ReactiveConnection.Result> |
select(java.lang.String sql,
java.lang.Object[] paramValues) |
java.util.concurrent.CompletionStage<java.lang.Long> |
selectIdentifier(java.lang.String sql,
java.lang.Object[] paramValues) |
java.util.concurrent.CompletionStage<java.sql.ResultSet> |
selectJdbc(java.lang.String sql,
java.lang.Object[] paramValues) |
java.util.concurrent.CompletionStage<java.lang.Integer> |
update(java.lang.String sql) |
java.util.concurrent.CompletionStage<int[]> |
update(java.lang.String sql,
java.util.List<java.lang.Object[]> paramValues) |
java.util.concurrent.CompletionStage<java.lang.Integer> |
update(java.lang.String sql,
java.lang.Object[] paramValues) |
java.util.concurrent.CompletionStage<java.lang.Void> |
update(java.lang.String sql,
java.lang.Object[] paramValues,
boolean allowBatching,
ReactiveConnection.Expectation expectation) |
public BatchingConnection(ReactiveConnection delegate, int batchSize)
public java.util.concurrent.CompletionStage<java.lang.Void> executeBatch()
executeBatch
in interface ReactiveConnection
public java.util.concurrent.CompletionStage<java.lang.Void> update(java.lang.String sql, java.lang.Object[] paramValues, boolean allowBatching, ReactiveConnection.Expectation expectation)
update
in interface ReactiveConnection
public java.util.concurrent.CompletionStage<java.lang.Void> execute(java.lang.String sql)
execute
in interface ReactiveConnection
public java.util.concurrent.CompletionStage<java.lang.Void> executeOutsideTransaction(java.lang.String sql)
executeOutsideTransaction
in interface ReactiveConnection
public java.util.concurrent.CompletionStage<java.lang.Integer> update(java.lang.String sql)
update
in interface ReactiveConnection
public java.util.concurrent.CompletionStage<java.lang.Integer> update(java.lang.String sql, java.lang.Object[] paramValues)
update
in interface ReactiveConnection
public java.util.concurrent.CompletionStage<int[]> update(java.lang.String sql, java.util.List<java.lang.Object[]> paramValues)
update
in interface ReactiveConnection
public java.util.concurrent.CompletionStage<java.lang.Long> insertAndSelectIdentifier(java.lang.String sql, java.lang.Object[] paramValues)
insertAndSelectIdentifier
in interface ReactiveConnection
public java.util.concurrent.CompletionStage<ReactiveConnection.Result> select(java.lang.String sql)
select
in interface ReactiveConnection
public java.util.concurrent.CompletionStage<ReactiveConnection.Result> select(java.lang.String sql, java.lang.Object[] paramValues)
select
in interface ReactiveConnection
public java.util.concurrent.CompletionStage<java.sql.ResultSet> selectJdbc(java.lang.String sql, java.lang.Object[] paramValues)
selectJdbc
in interface ReactiveConnection
public java.util.concurrent.CompletionStage<java.lang.Long> selectIdentifier(java.lang.String sql, java.lang.Object[] paramValues)
selectIdentifier
in interface ReactiveConnection
public java.util.concurrent.CompletionStage<java.lang.Void> beginTransaction()
beginTransaction
in interface ReactiveConnection
public java.util.concurrent.CompletionStage<java.lang.Void> commitTransaction()
commitTransaction
in interface ReactiveConnection
public java.util.concurrent.CompletionStage<java.lang.Void> rollbackTransaction()
rollbackTransaction
in interface ReactiveConnection
public void close()
close
in interface ReactiveConnection