Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e35e744

Browse files
committed
[#2404] Upgrade Hibernate ORM to 7.1.0.CR2
1 parent b366a01 commit e35e744

File tree

42 files changed

+1542
-3466
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1542
-3466
lines changed

‎hibernate-reactive-core/src/main/java/org/hibernate/reactive/persister/entity/impl/ReactiveAbstractEntityPersister.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@
8080
import static org.hibernate.pretty.MessageHelper.infoString;
8181
import static org.hibernate.reactive.logging.impl.LoggerFactory.make;
8282
import static org.hibernate.reactive.util.impl.CompletionStages.completedFuture;
83-
import static org.hibernate.reactive.util.impl.CompletionStages.failedFuture;
8483
import static org.hibernate.reactive.util.impl.CompletionStages.logSqlException;
8584
import static org.hibernate.reactive.util.impl.CompletionStages.nullFuture;
8685
import static org.hibernate.reactive.util.impl.CompletionStages.voidFuture;
@@ -303,25 +302,25 @@ default CompletionStage<Object> reactiveGetCurrentVersion(Object id, SharedSessi
303302

304303
return getReactiveConnection( session )
305304
.selectJdbc( delegate().getVersionSelectString(), params )
306-
.thenCompose( resultSet -> currentVersion( session, resultSet ) );
305+
.thenApply( resultSet -> currentVersion( session, resultSet ) );
307306
}
308307

309-
private CompletionStage<Object> currentVersion(SharedSessionContractImplementor session, ResultSet resultSet) {
308+
private Object currentVersion(SharedSessionContractImplementor session, ResultSet resultSet) {
310309
try {
311310
if ( !resultSet.next() ) {
312-
return nullFuture();
311+
return null;
313312
}
314313
if ( !isVersioned() ) {
315-
return completedFuture( this );
314+
return this;
316315
}
317-
return completedFuture( getVersionType()
318-
.getJdbcMapping()
319-
.getJdbcValueExtractor()
320-
.extract( resultSet, 1, session ) );
316+
return getVersionType()
317+
.getJdbcMapping()
318+
.getJdbcValueExtractor()
319+
.extract( resultSet, 1, session );
321320
}
322321
catch (SQLException sqle) {
323322
//can never happen
324-
returnfailedFuture( new JDBCException( "error reading version", sqle ) );
323+
thrownew JDBCException( "error reading version", sqle );
325324
}
326325
}
327326

‎hibernate-reactive-core/src/main/java/org/hibernate/reactive/query/sql/spi/ReactiveNamedSqmQueryMemento.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.hibernate.query.sqm.spi.NamedSqmQueryMemento;
2121
import org.hibernate.query.sqm.tree.SqmStatement;
2222
import org.hibernate.query.sqm.tree.select.SqmSelectStatement;
23-
import org.hibernate.reactive.query.sqm.internal.ReactiveQuerySqmImpl;
23+
import org.hibernate.reactive.query.sqm.internal.ReactiveSqmQueryImpl;
2424
import org.hibernate.reactive.query.sqm.internal.ReactiveSqmSelectionQueryImpl;
2525

2626
/**
@@ -49,10 +49,10 @@ public SqmQueryImplementor<E> toQuery(SharedSessionContractImplementor session)
4949
public <T> SqmQueryImplementor<T> toQuery(SharedSessionContractImplementor session, Class<T> resultType) {
5050
// A bit of a hack, I'm sure that if we have a better look at this we can avoid the instanceof
5151
if ( delegate instanceof NamedHqlQueryMementoImpl ) {
52-
return new ReactiveQuerySqmImpl<>( (NamedHqlQueryMementoImpl) delegate, resultType, session );
52+
return new ReactiveSqmQueryImpl<>( (NamedHqlQueryMementoImpl) delegate, resultType, session );
5353
}
5454
if ( delegate instanceof NamedCriteriaQueryMementoImpl ) {
55-
return new ReactiveQuerySqmImpl<>( (NamedCriteriaQueryMementoImpl) delegate, resultType, session );
55+
return new ReactiveSqmQueryImpl<>( (NamedCriteriaQueryMementoImpl) delegate, resultType, session );
5656
}
5757
else {
5858
throw new UnsupportedOperationException( "NamedSqmQueryMemento not recognized: " + delegate.getClass() );

‎hibernate-reactive-core/src/main/java/org/hibernate/reactive/query/sqm/internal/ConcreteSqmSelectReactiveQueryPlan.java

Lines changed: 84 additions & 190 deletions
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/* Hibernate, Relational Persistence for Idiomatic Java
2+
*
3+
* SPDX-License-Identifier: Apache-2.0
4+
* Copyright: Red Hat Inc. and Hibernate Authors
5+
*/
6+
package org.hibernate.reactive.query.sqm.internal;
7+
8+
import org.hibernate.action.internal.BulkOperationCleanupAction;
9+
import org.hibernate.query.spi.DomainQueryExecutionContext;
10+
import org.hibernate.query.sqm.internal.AbstractMultiTableMutationQueryPlan;
11+
import org.hibernate.query.sqm.internal.DomainParameterXref;
12+
import org.hibernate.query.sqm.tree.SqmDmlStatement;
13+
import org.hibernate.reactive.query.sql.spi.ReactiveNonSelectQueryPlan;
14+
import org.hibernate.reactive.query.sqm.mutation.internal.ReactiveHandler;
15+
16+
import java.util.concurrent.CompletionStage;
17+
18+
public abstract class ReactiveAbstractMultiTableMutationQueryPlan<S extends SqmDmlStatement<?>, F>
19+
extends AbstractMultiTableMutationQueryPlan<S, F> implements ReactiveNonSelectQueryPlan {
20+
21+
public ReactiveAbstractMultiTableMutationQueryPlan(
22+
S statement,
23+
DomainParameterXref domainParameterXref,
24+
F strategy) {
25+
super( statement, domainParameterXref, strategy );
26+
}
27+
28+
@Override
29+
public CompletionStage<Integer> executeReactiveUpdate(DomainQueryExecutionContext context) {
30+
BulkOperationCleanupAction.schedule( context.getSession(), getStatement() );
31+
final Interpretation interpretation = getInterpretation( context );
32+
return ((ReactiveHandler)interpretation.handler()).reactiveExecute( interpretation.jdbcParameterBindings(), context );
33+
}
34+
35+
}

‎hibernate-reactive-core/src/main/java/org/hibernate/reactive/query/sqm/internal/ReactiveMultiTableDeleteQueryPlan.java

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,32 @@
55
*/
66
package org.hibernate.reactive.query.sqm.internal;
77

8-
import java.util.concurrent.CompletionStage;
9-
10-
import org.hibernate.action.internal.BulkOperationCleanupAction;
118
import org.hibernate.query.spi.DomainQueryExecutionContext;
129
import org.hibernate.query.sqm.internal.DomainParameterXref;
10+
import org.hibernate.query.sqm.mutation.spi.MultiTableHandlerBuildResult;
11+
import org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy;
1312
import org.hibernate.query.sqm.tree.delete.SqmDeleteStatement;
14-
import org.hibernate.reactive.query.sql.spi.ReactiveNonSelectQueryPlan;
1513
import org.hibernate.reactive.query.sqm.mutation.spi.ReactiveSqmMultiTableMutationStrategy;
1614

1715
/**
1816
* @see org.hibernate.query.sqm.internal.MultiTableDeleteQueryPlan
1917
*/
20-
public class ReactiveMultiTableDeleteQueryPlan implements ReactiveNonSelectQueryPlan {
21-
private final SqmDeleteStatement<?> sqmDelete;
22-
private final DomainParameterXref domainParameterXref;
23-
private final ReactiveSqmMultiTableMutationStrategy deleteStrategy;
18+
public class ReactiveMultiTableDeleteQueryPlan
19+
extends ReactiveAbstractMultiTableMutationQueryPlan<SqmDeleteStatement<?>, SqmMultiTableMutationStrategy> {
2420

2521
public ReactiveMultiTableDeleteQueryPlan(
2622
SqmDeleteStatement<?> sqmDelete,
2723
DomainParameterXref domainParameterXref,
2824
ReactiveSqmMultiTableMutationStrategy deleteStrategy) {
29-
this.sqmDelete = sqmDelete;
30-
this.domainParameterXref = domainParameterXref;
31-
this.deleteStrategy = deleteStrategy;
25+
super( sqmDelete, domainParameterXref, deleteStrategy );
3226
}
3327

3428
@Override
35-
public CompletionStage<Integer> executeReactiveUpdate(DomainQueryExecutionContext executionContext) {
36-
BulkOperationCleanupAction.schedule( executionContext.getSession(), sqmDelete );
37-
return deleteStrategy.reactiveExecuteDelete( sqmDelete, domainParameterXref, executionContext );
29+
protected MultiTableHandlerBuildResult buildHandler(
30+
SqmDeleteStatement<?> statement,
31+
DomainParameterXref domainParameterXref,
32+
SqmMultiTableMutationStrategy strategy,
33+
DomainQueryExecutionContext context) {
34+
return strategy.buildHandler( statement, domainParameterXref, context );
3835
}
3936
}

‎hibernate-reactive-core/src/main/java/org/hibernate/reactive/query/sqm/internal/ReactiveMultiTableInsertQueryPlan.java

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,32 @@
55
*/
66
package org.hibernate.reactive.query.sqm.internal;
77

8-
import java.util.concurrent.CompletionStage;
9-
10-
import org.hibernate.action.internal.BulkOperationCleanupAction;
118
import org.hibernate.query.spi.DomainQueryExecutionContext;
129
import org.hibernate.query.sqm.internal.DomainParameterXref;
10+
import org.hibernate.query.sqm.mutation.spi.MultiTableHandlerBuildResult;
11+
import org.hibernate.query.sqm.mutation.spi.SqmMultiTableInsertStrategy;
1312
import org.hibernate.query.sqm.tree.insert.SqmInsertStatement;
14-
import org.hibernate.reactive.query.sql.spi.ReactiveNonSelectQueryPlan;
1513
import org.hibernate.reactive.query.sqm.mutation.spi.ReactiveSqmMultiTableInsertStrategy;
1614

1715
/**
1816
* @see org.hibernate.query.sqm.internal.MultiTableInsertQueryPlan
1917
*/
20-
public class ReactiveMultiTableInsertQueryPlan implements ReactiveNonSelectQueryPlan {
21-
private final SqmInsertStatement<?> sqmInsert;
22-
private final DomainParameterXref domainParameterXref;
23-
private final ReactiveSqmMultiTableInsertStrategy mutationStrategy;
18+
public class ReactiveMultiTableInsertQueryPlan
19+
extends ReactiveAbstractMultiTableMutationQueryPlan<SqmInsertStatement<?>, SqmMultiTableInsertStrategy> {
2420

2521
public ReactiveMultiTableInsertQueryPlan(
2622
SqmInsertStatement<?> sqmInsert,
2723
DomainParameterXref domainParameterXref,
2824
ReactiveSqmMultiTableInsertStrategy mutationStrategy) {
29-
this.sqmInsert = sqmInsert;
30-
this.domainParameterXref = domainParameterXref;
31-
this.mutationStrategy = mutationStrategy;
25+
super( sqmInsert, domainParameterXref, mutationStrategy );
3226
}
3327

3428
@Override
35-
public CompletionStage<Integer> executeReactiveUpdate(DomainQueryExecutionContext executionContext) {
36-
BulkOperationCleanupAction.schedule( executionContext.getSession(), sqmInsert );
37-
return mutationStrategy.reactiveExecuteInsert( sqmInsert, domainParameterXref, executionContext );
29+
protected MultiTableHandlerBuildResult buildHandler(
30+
SqmInsertStatement<?> statement,
31+
DomainParameterXref domainParameterXref,
32+
SqmMultiTableInsertStrategy strategy,
33+
DomainQueryExecutionContext context) {
34+
return strategy.buildHandler( statement, domainParameterXref, context );
3835
}
3936
}

‎hibernate-reactive-core/src/main/java/org/hibernate/reactive/query/sqm/internal/ReactiveMultiTableUpdateQueryPlan.java

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,31 @@
55
*/
66
package org.hibernate.reactive.query.sqm.internal;
77

8-
import java.util.concurrent.CompletionStage;
9-
10-
import org.hibernate.action.internal.BulkOperationCleanupAction;
118
import org.hibernate.query.spi.DomainQueryExecutionContext;
129
import org.hibernate.query.sqm.internal.DomainParameterXref;
10+
import org.hibernate.query.sqm.mutation.spi.MultiTableHandlerBuildResult;
11+
import org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy;
1312
import org.hibernate.query.sqm.tree.update.SqmUpdateStatement;
14-
import org.hibernate.reactive.query.sql.spi.ReactiveNonSelectQueryPlan;
15-
import org.hibernate.reactive.query.sqm.mutation.spi.ReactiveSqmMultiTableMutationStrategy;
1613

1714
/**
1815
* @see org.hibernate.query.sqm.internal.MultiTableUpdateQueryPlan
1916
*/
20-
public class ReactiveMultiTableUpdateQueryPlan implements ReactiveNonSelectQueryPlan {
21-
private final SqmUpdateStatement<?> sqmUpdate;
22-
private final DomainParameterXref domainParameterXref;
23-
private final ReactiveSqmMultiTableMutationStrategy mutationStrategy;
17+
public class ReactiveMultiTableUpdateQueryPlan
18+
extends ReactiveAbstractMultiTableMutationQueryPlan<SqmUpdateStatement<?>, SqmMultiTableMutationStrategy> {
2419

2520
public ReactiveMultiTableUpdateQueryPlan(
2621
SqmUpdateStatement<?> sqmUpdate,
2722
DomainParameterXref domainParameterXref,
28-
ReactiveSqmMultiTableMutationStrategy mutationStrategy) {
29-
this.sqmUpdate = sqmUpdate;
30-
this.domainParameterXref = domainParameterXref;
31-
this.mutationStrategy = mutationStrategy;
23+
SqmMultiTableMutationStrategy mutationStrategy) {
24+
super( sqmUpdate, domainParameterXref, mutationStrategy );
3225
}
3326

3427
@Override
35-
public CompletionStage<Integer> executeReactiveUpdate(DomainQueryExecutionContext executionContext) {
36-
BulkOperationCleanupAction.schedule( executionContext.getSession(), sqmUpdate );
37-
return mutationStrategy.reactiveExecuteUpdate( sqmUpdate, domainParameterXref, executionContext );
28+
protected MultiTableHandlerBuildResult buildHandler(
29+
SqmUpdateStatement<?> statement,
30+
DomainParameterXref domainParameterXref,
31+
SqmMultiTableMutationStrategy strategy,
32+
DomainQueryExecutionContext context) {
33+
return strategy.buildHandler( statement, domainParameterXref, context );
3834
}
3935
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /