Skip to content

Commit db13d51

Browse files
committed
slight code improvements around batch stuff
1 parent 0893c7c commit db13d51

File tree

9 files changed

+33
-61
lines changed

9 files changed

+33
-61
lines changed

hibernate-core/src/main/java/org/hibernate/annotations/ResultCheckStyle.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public enum ResultCheckStyle {
2929
/**
3030
* No return code checking. Might mean that no checks are required, or that
3131
* failure is indicated by a {@link java.sql.SQLException} being thrown, for
32-
* example, by a {@link java.sql.CallableStatement stored procedure} which
32+
* example, by a {@linkplain java.sql.CallableStatement stored procedure} which
3333
* performs explicit checks.
3434
*
3535
* @see org.hibernate.jdbc.Expectation.None
@@ -47,7 +47,7 @@ public enum ResultCheckStyle {
4747
COUNT,
4848
/**
4949
* Essentially identical to {@link #COUNT} except that the row count is
50-
* obtained via an output parameter of a {@link java.sql.CallableStatement
50+
* obtained via an output parameter of a {@linkplain java.sql.CallableStatement
5151
* stored procedure}.
5252
* <p>
5353
* Statement batching is disabled when {@code PARAM} is selected.

hibernate-core/src/main/java/org/hibernate/engine/jdbc/batch/internal/BasicBatchKey.java

+1-29
Original file line numberDiff line numberDiff line change
@@ -5,41 +5,13 @@
55
package org.hibernate.engine.jdbc.batch.internal;
66

77
import org.hibernate.engine.jdbc.batch.spi.BatchKey;
8-
import org.hibernate.jdbc.Expectations;
98

109
/**
1110
* Normal implementation of {@link BatchKey}
1211
*
1312
* @author Steve Ebersole
1413
*/
15-
public class BasicBatchKey implements BatchKey {
16-
private final String comparison;
17-
18-
/**
19-
* Constructs a BasicBatchKey with {@link Expectations#NONE}
20-
*/
21-
public BasicBatchKey(String comparison) {
22-
this.comparison = comparison;
23-
}
24-
25-
@Override
26-
public boolean equals(Object o) {
27-
if ( this == o ) {
28-
return true;
29-
}
30-
if ( o == null || getClass() != o.getClass() ) {
31-
return false;
32-
}
33-
34-
final BasicBatchKey that = (BasicBatchKey) o;
35-
return comparison.equals( that.comparison );
36-
}
37-
38-
@Override
39-
public int hashCode() {
40-
return comparison.hashCode();
41-
}
42-
14+
public record BasicBatchKey(String comparison) implements BatchKey {
4315
@Override
4416
public String toLoggableString() {
4517
return comparison;

hibernate-core/src/main/java/org/hibernate/engine/jdbc/batch/internal/BatchBuilderImpl.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
*/
55
package org.hibernate.engine.jdbc.batch.internal;
66

7-
import java.util.Collections;
87
import java.util.function.Supplier;
98

109
import org.hibernate.Internal;
@@ -15,11 +14,12 @@
1514
import org.hibernate.engine.jdbc.mutation.internal.PreparedStatementGroupSingleTable;
1615
import org.hibernate.engine.jdbc.spi.JdbcCoordinator;
1716
import org.hibernate.engine.spi.SessionImplementor;
17+
import org.hibernate.jdbc.Expectation;
1818
import org.hibernate.sql.model.TableMapping;
1919
import org.hibernate.sql.model.jdbc.JdbcInsertMutation;
2020

21+
import static java.util.Collections.emptyList;
2122
import static org.hibernate.engine.jdbc.batch.JdbcBatchLogging.BATCH_LOGGER;
22-
import static org.hibernate.jdbc.Expectations.NONE;
2323

2424
/**
2525
* A builder for {@link Batch} instances.
@@ -134,8 +134,8 @@ public MutationDetails getDeleteDetails() {
134134
null,
135135
sql,
136136
false,
137-
NONE,
138-
Collections.emptyList()
137+
Expectation.None.INSTANCE,
138+
emptyList()
139139
),
140140
session
141141
),

hibernate-core/src/main/java/org/hibernate/engine/jdbc/batch/internal/BatchImpl.java

+12-12
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.hibernate.resource.jdbc.spi.JdbcEventHandler;
2727
import org.hibernate.resource.jdbc.spi.JdbcSessionOwner;
2828

29+
import static java.util.Objects.requireNonNull;
2930
import static org.hibernate.engine.jdbc.JdbcLogging.JDBC_MESSAGE_LOGGER;
3031
import static org.hibernate.engine.jdbc.batch.JdbcBatchLogging.BATCH_LOGGER;
3132
import static org.hibernate.engine.jdbc.batch.JdbcBatchLogging.BATCH_MESSAGE_LOGGER;
@@ -56,21 +57,18 @@ public BatchImpl(
5657
PreparedStatementGroup statementGroup,
5758
int batchSizeToUse,
5859
JdbcCoordinator jdbcCoordinator) {
59-
if ( key == null ) {
60-
throw new IllegalArgumentException( "Batch key cannot be null" );
61-
}
62-
if ( jdbcCoordinator == null ) {
63-
throw new IllegalArgumentException( "JDBC coordinator cannot be null" );
64-
}
60+
requireNonNull( key, "Batch key cannot be null" );
61+
requireNonNull( jdbcCoordinator, "JDBC coordinator cannot be null" );
6562

6663
this.batchSizeToUse = batchSizeToUse;
6764
this.key = key;
6865
this.jdbcCoordinator = jdbcCoordinator;
6966
this.statementGroup = statementGroup;
7067

71-
final JdbcServices jdbcServices = jdbcCoordinator.getJdbcSessionOwner().getJdbcSessionContext().getJdbcServices();
72-
this.sqlStatementLogger = jdbcServices.getSqlStatementLogger();
73-
this.sqlExceptionHelper = jdbcServices.getSqlExceptionHelper();
68+
final JdbcServices jdbcServices =
69+
jdbcCoordinator.getJdbcSessionOwner().getJdbcSessionContext().getJdbcServices();
70+
sqlStatementLogger = jdbcServices.getSqlStatementLogger();
71+
sqlExceptionHelper = jdbcServices.getSqlExceptionHelper();
7472

7573
if ( BATCH_LOGGER.isTraceEnabled() ) {
7674
BATCH_MESSAGE_LOGGER.createBatch(
@@ -134,7 +132,8 @@ public void addToBatch(JdbcValueBindings jdbcValueBindings, TableInclusionChecke
134132
else {
135133
//noinspection resource
136134
final PreparedStatement statement = statementDetails.resolveStatement();
137-
sqlStatementLogger.logStatement( statementDetails.getSqlString() );
135+
final String sqlString = statementDetails.getSqlString();
136+
sqlStatementLogger.logStatement( sqlString );
138137
jdbcValueBindings.beforeStatement( statementDetails );
139138
try {
140139
statement.addBatch();
@@ -144,7 +143,7 @@ public void addToBatch(JdbcValueBindings jdbcValueBindings, TableInclusionChecke
144143
throw sqlExceptionHelper.convert(
145144
e,
146145
"Could not perform addBatch",
147-
statementDetails.getSqlString()
146+
sqlString
148147
);
149148
}
150149
finally {
@@ -303,10 +302,11 @@ private void checkRowCounts(int[] rowCounts, PreparedStatementDetails statementD
303302
);
304303
}
305304

305+
final String sql = statementDetails.getSqlString();
306306
for ( int i = 0; i < numberOfRowCounts; i++ ) {
307307
try {
308308
statementDetails.getExpectation()
309-
.verifyOutcome( rowCounts[i], statementDetails.getStatement(), i, statementDetails.getSqlString() );
309+
.verifyOutcome( rowCounts[i], statementDetails.getStatement(), i, sql );
310310
}
311311
catch ( StaleStateException staleStateException ) {
312312
if ( staleStateMappers != null ) {

hibernate-core/src/main/java/org/hibernate/jdbc/Expectation.java

+1
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ default void validate(boolean callable) throws MappingException {
147147
* @since 6.5
148148
*/
149149
class None implements Expectation {
150+
public static final None INSTANCE = new None();
150151
@Override
151152
public void verifyOutcome(int rowCount, PreparedStatement statement, int batchPosition, String sql) {
152153
// nothing to do

hibernate-core/src/main/java/org/hibernate/persister/collection/OneToManyPersister.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.hibernate.engine.jdbc.mutation.spi.MutationExecutorService;
2323
import org.hibernate.engine.spi.SharedSessionContractImplementor;
2424
import org.hibernate.internal.FilterAliasGenerator;
25-
import org.hibernate.jdbc.Expectations;
25+
import org.hibernate.jdbc.Expectation;
2626
import org.hibernate.mapping.Collection;
2727
import org.hibernate.metamodel.mapping.CollectionPart;
2828
import org.hibernate.metamodel.mapping.EntityIdentifierMapping;
@@ -350,7 +350,7 @@ public RestrictedTableMutation<JdbcMutationOperation> generateDeleteAllAst(Mutat
350350
null,
351351
parameterBinders,
352352
sqlWhereString,
353-
Expectations.NONE
353+
Expectation.None.INSTANCE
354354
);
355355
}
356356

hibernate-core/src/main/java/org/hibernate/sql/model/internal/TableUpdateNoSet.java

+7-8
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
*/
55
package org.hibernate.sql.model.internal;
66

7-
import java.util.Collections;
87
import java.util.List;
98
import java.util.function.BiConsumer;
109
import java.util.function.Consumer;
@@ -23,7 +22,7 @@
2322
import org.hibernate.sql.model.ast.TableUpdate;
2423
import org.hibernate.sql.model.jdbc.JdbcMutationOperation;
2524

26-
import static org.hibernate.jdbc.Expectations.NONE;
25+
import static java.util.Collections.emptyList;
2726

2827
/**
2928
* A skipped update
@@ -38,9 +37,9 @@ public TableUpdateNoSet(MutatingTableReference mutatingTable, MutationTarget<?>
3837
mutatingTable,
3938
mutationTarget,
4039
"no-op",
41-
Collections.emptyList(),
42-
Collections.emptyList(),
43-
Collections.emptyList()
40+
emptyList(),
41+
emptyList(),
42+
emptyList()
4443
);
4544
}
4645

@@ -69,7 +68,7 @@ protected JdbcMutationOperation createMutationOperation(
6968

7069
@Override
7170
public Expectation getExpectation() {
72-
return NONE;
71+
return Expectation.None.INSTANCE;
7372
}
7473

7574
@Override
@@ -79,7 +78,7 @@ public boolean isCallable() {
7978

8079
@Override
8180
public List<ColumnValueBinding> getValueBindings() {
82-
return Collections.emptyList();
81+
return emptyList();
8382
}
8483

8584
@Override
@@ -88,7 +87,7 @@ public void forEachParameter(Consumer<ColumnValueParameter> consumer) {
8887

8988
@Override
9089
public List<ColumnReference> getReturningColumns() {
91-
return Collections.emptyList();
90+
return emptyList();
9291
}
9392

9493
@Override

hibernate-core/src/main/java/org/hibernate/sql/model/jdbc/MergeOperation.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import java.util.List;
88

9-
import org.hibernate.jdbc.Expectations;
9+
import org.hibernate.jdbc.Expectation;
1010
import org.hibernate.sql.exec.spi.JdbcParameterBinder;
1111
import org.hibernate.sql.model.MutationTarget;
1212
import org.hibernate.sql.model.MutationType;
@@ -23,7 +23,7 @@ public MergeOperation(
2323
MutationTarget<?> mutationTarget,
2424
String sql,
2525
List<? extends JdbcParameterBinder> parameterBinders) {
26-
super( tableDetails, mutationTarget, sql, false, Expectations.NONE, parameterBinders );
26+
super( tableDetails, mutationTarget, sql, false, Expectation.None.INSTANCE, parameterBinders );
2727
}
2828

2929
@Override

hibernate-core/src/main/java/org/hibernate/sql/model/jdbc/UpsertOperation.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import java.util.List;
88

9-
import org.hibernate.jdbc.Expectations;
9+
import org.hibernate.jdbc.Expectation;
1010
import org.hibernate.sql.exec.spi.JdbcParameterBinder;
1111
import org.hibernate.sql.model.MutationTarget;
1212
import org.hibernate.sql.model.MutationType;
@@ -23,7 +23,7 @@ public UpsertOperation(
2323
MutationTarget<?> mutationTarget,
2424
String sql,
2525
List<? extends JdbcParameterBinder> parameterBinders) {
26-
super( tableDetails, mutationTarget, sql, false, Expectations.NONE, parameterBinders );
26+
super( tableDetails, mutationTarget, sql, false, Expectation.None.INSTANCE, parameterBinders );
2727
}
2828

2929
@Override

0 commit comments

Comments
 (0)