Skip to content

Commit c8c879a

Browse files
committed
[#2220] Fix errors with ORM 7.0.0.CR1
Plus, update expected Oracle default database mapping in tests: * `Double` and `double` java types changes from `FLOAT` to `BINARY_DOUBLE` * `Float` and `float` java types changes from `FLOAT` to `BINARY_FLOAT` Changes to ReactiveAbstractSelectionQuery
1 parent 79f32da commit c8c879a

File tree

12 files changed

+53
-81
lines changed

12 files changed

+53
-81
lines changed

hibernate-reactive-core/src/main/java/org/hibernate/reactive/generator/values/internal/ReactiveGeneratedValuesHelper.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,6 @@
55
*/
66
package org.hibernate.reactive.generator.values.internal;
77

8-
import java.sql.PreparedStatement;
9-
import java.sql.ResultSet;
10-
import java.sql.SQLException;
11-
import java.util.ArrayList;
12-
import java.util.List;
13-
import java.util.concurrent.CompletionStage;
14-
158
import org.hibernate.HibernateException;
169
import org.hibernate.Internal;
1710
import org.hibernate.dialect.Dialect;
@@ -48,8 +41,15 @@
4841
import org.hibernate.sql.results.jdbc.spi.JdbcValuesSourceProcessingOptions;
4942
import org.hibernate.type.descriptor.WrapperOptions;
5043

51-
import static org.hibernate.generator.internal.NaturalIdHelper.getNaturalIdPropertyNames;
44+
import java.sql.PreparedStatement;
45+
import java.sql.ResultSet;
46+
import java.sql.SQLException;
47+
import java.util.ArrayList;
48+
import java.util.List;
49+
import java.util.concurrent.CompletionStage;
50+
5251
import static org.hibernate.generator.values.internal.GeneratedValuesHelper.noCustomSql;
52+
import static org.hibernate.internal.NaturalIdHelper.getNaturalIdPropertyNames;
5353
import static org.hibernate.reactive.sql.results.spi.ReactiveListResultsConsumer.UniqueSemantic.NONE;
5454

5555
/**

hibernate-reactive-core/src/main/java/org/hibernate/reactive/loader/ast/internal/ReactiveSingleIdEntityLoaderStandardImpl.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,7 @@ public CompletionStage<T> load(
5555
SharedSessionContractImplementor session) {
5656
final ReactiveSingleIdLoadPlan<T> loadPlan = (ReactiveSingleIdLoadPlan<T>) resolveLoadPlan(
5757
lockOptions,
58-
session.getLoadQueryInfluencers(),
59-
session.getFactory()
58+
session.getLoadQueryInfluencers()
6059
);
6160
return loadPlan.load( key, readOnly, true, session );
6261
}
@@ -68,7 +67,7 @@ public CompletionStage<T> load(
6867
LockOptions lockOptions,
6968
Boolean readOnly,
7069
SharedSessionContractImplementor session) {
71-
final ReactiveSingleIdLoadPlan<T> loadPlan = (ReactiveSingleIdLoadPlan<T>) resolveLoadPlan( lockOptions, session.getLoadQueryInfluencers(), session.getFactory() );
70+
final ReactiveSingleIdLoadPlan<T> loadPlan = (ReactiveSingleIdLoadPlan<T>) resolveLoadPlan( lockOptions, session.getLoadQueryInfluencers() );
7271
return loadPlan.load( key, entityInstance, readOnly, false, session );
7372
}
7473

hibernate-reactive-core/src/main/java/org/hibernate/reactive/query/internal/ReactiveNamedObjectRepositoryImpl.java

+6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66
package org.hibernate.reactive.query.internal;
77

8+
import jakarta.persistence.TypedQuery;
89
import java.util.Map;
910
import java.util.function.Consumer;
1011

@@ -48,6 +49,11 @@ public void registerNamedQuery(String name, Query query) {
4849
delegate.registerNamedQuery( name, query );
4950
}
5051

52+
@Override
53+
public <R> TypedQueryReference<R> registerNamedQuery(String name, TypedQuery<R> query) {
54+
return delegate.registerNamedQuery( name, query );
55+
}
56+
5157
@Override
5258
public void visitSqmQueryMementos(Consumer<NamedSqmQueryMemento<?>> action) {
5359
delegate.visitSqmQueryMementos( action );

hibernate-reactive-core/src/main/java/org/hibernate/reactive/query/spi/ReactiveAbstractSelectionQuery.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import org.hibernate.query.spi.QueryOptions;
3131
import org.hibernate.query.sqm.internal.DomainParameterXref;
3232
import org.hibernate.query.sqm.internal.SqmInterpretationsKey;
33-
import org.hibernate.query.sqm.internal.SqmInterpretationsKey.InterpretationsKeySource;
33+
import org.hibernate.query.sqm.spi.InterpretationsKeySource;
3434
import org.hibernate.query.sqm.tree.SqmStatement;
3535
import org.hibernate.query.sqm.tree.select.SqmSelectStatement;
3636
import org.hibernate.reactive.engine.impl.ReactiveCallbackImpl;

hibernate-reactive-core/src/main/java/org/hibernate/reactive/session/impl/ReactiveSessionImpl.java

-8
Original file line numberDiff line numberDiff line change
@@ -1250,10 +1250,6 @@ private <T> ReactiveEntityPersister entityPersister(Class<T> entityClass) {
12501250
return (ReactiveEntityPersister) getFactory().getMappingMetamodel().getEntityDescriptor( entityClass );
12511251
}
12521252

1253-
private EntityPersister requireEntityPersister(Class<?> entityClass) {
1254-
return getFactory().getMappingMetamodel().getEntityDescriptor( entityClass );
1255-
}
1256-
12571253
private CompletionStage<Void> fireReactiveLoad(LoadEvent event, LoadEventListener.LoadType loadType) {
12581254
checkOpenOrWaitingForAutoClose();
12591255

@@ -1283,10 +1279,6 @@ public void checkTransactionNeededForUpdateOperation(String exceptionMessage) {
12831279
//no-op because we don't support transactions
12841280
}
12851281

1286-
private Boolean getReadOnlyFromLoadQueryInfluencers() {
1287-
return getLoadQueryInfluencers().getReadOnly();
1288-
}
1289-
12901282
private class ReactiveIdentifierLoadAccessImpl<T> {
12911283

12921284
private final EntityPersister entityPersister;

hibernate-reactive-core/src/main/java/org/hibernate/reactive/session/impl/ReactiveStatelessSessionImpl.java

+4-32
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,6 @@
55
*/
66
package org.hibernate.reactive.session.impl;
77

8-
import java.util.List;
9-
import java.util.concurrent.CompletableFuture;
10-
import java.util.concurrent.CompletionStage;
11-
import java.util.function.Supplier;
12-
138
import org.hibernate.HibernateException;
149
import org.hibernate.LockMode;
1510
import org.hibernate.LockOptions;
@@ -28,10 +23,6 @@
2823
import org.hibernate.engine.spi.PersistentAttributeInterceptable;
2924
import org.hibernate.engine.spi.PersistentAttributeInterceptor;
3025
import org.hibernate.engine.spi.SharedSessionContractImplementor;
31-
import org.hibernate.event.spi.PostInsertEvent;
32-
import org.hibernate.event.spi.PostInsertEventListener;
33-
import org.hibernate.event.spi.PreInsertEvent;
34-
import org.hibernate.event.spi.PreInsertEventListener;
3526
import org.hibernate.generator.BeforeExecutionGenerator;
3627
import org.hibernate.generator.Generator;
3728
import org.hibernate.graph.GraphSemantic;
@@ -89,6 +80,10 @@
8980
import jakarta.persistence.criteria.CriteriaDelete;
9081
import jakarta.persistence.criteria.CriteriaQuery;
9182
import jakarta.persistence.criteria.CriteriaUpdate;
83+
import java.util.List;
84+
import java.util.concurrent.CompletableFuture;
85+
import java.util.concurrent.CompletionStage;
86+
import java.util.function.Supplier;
9287

9388
import static java.lang.Boolean.TRUE;
9489
import static java.lang.invoke.MethodHandles.lookup;
@@ -340,29 +335,6 @@ private CompletionStage<Void> reactiveInsert(Object entity, ReactiveEntityPersis
340335
}
341336
}
342337

343-
private boolean firePreInsert(Object entity, Object id, Object[] state, EntityPersister persister) {
344-
if ( getFactory().getEventListenerGroups().eventListenerGroup_PRE_INSERT.isEmpty() ) {
345-
return false;
346-
}
347-
else {
348-
boolean veto = false;
349-
final PreInsertEvent event = new PreInsertEvent( entity, id, state, persister, null );
350-
for ( PreInsertEventListener listener : getFactory().getEventListenerGroups().eventListenerGroup_PRE_INSERT.listeners() ) {
351-
veto |= listener.onPreInsert( event );
352-
}
353-
return veto;
354-
}
355-
}
356-
357-
private void firePostInsert(Object entity, Object id, Object[] state, EntityPersister persister) {
358-
if ( !getFactory().getEventListenerGroups().eventListenerGroup_POST_INSERT.isEmpty() ) {
359-
final PostInsertEvent event = new PostInsertEvent( entity, id, state, persister, null );
360-
for ( PostInsertEventListener listener : getFactory().getEventListenerGroups().eventListenerGroup_POST_INSERT.listeners() ) {
361-
listener.onPostInsert( event );
362-
}
363-
}
364-
}
365-
366338
private CompletionStage<?> generateId(EntityPersister persister, Object entity, Generator generator) {
367339
if ( generator.generatesOnInsert() ) {
368340
if ( generator instanceof ReactiveIdentifierGenerator<?> reactiveGenerator ) {

hibernate-reactive-core/src/main/java/org/hibernate/reactive/sql/exec/internal/StandardReactiveSelectExecutor.java

+8-5
Original file line numberDiff line numberDiff line change
@@ -412,14 +412,17 @@ public CompletionStage<ReactiveValuesResultSet> resolveJdbcValuesSource(
412412
}
413413
}
414414

415+
/**
416+
* Copied from Hibernate ORM
417+
*/
415418
private static CacheMode resolveCacheMode(ExecutionContext executionContext) {
416419
final QueryOptions queryOptions = executionContext.getQueryOptions();
417420
final SharedSessionContract session = executionContext.getSession();
418-
return coalesceSuppliedValues(
419-
() -> queryOptions == null ? null : queryOptions.getCacheMode(),
420-
session::getCacheMode,
421-
() -> CacheMode.NORMAL
422-
);
421+
return coalesceSuppliedValues(
422+
() -> queryOptions == null ? null : queryOptions.getCacheMode(),
423+
session::getCacheMode,
424+
() -> CacheMode.NORMAL
425+
);
423426
}
424427

425428
/**

hibernate-reactive-core/src/main/java/org/hibernate/reactive/type/descriptor/jdbc/ReactiveJsonArrayJdbcType.java

+5-6
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,6 @@
55
*/
66
package org.hibernate.reactive.type.descriptor.jdbc;
77

8-
import java.sql.CallableStatement;
9-
import java.sql.PreparedStatement;
10-
import java.sql.ResultSet;
11-
import java.sql.SQLException;
12-
13-
import org.hibernate.dialect.JsonHelper;
148
import org.hibernate.metamodel.mapping.EmbeddableMappingType;
159
import org.hibernate.type.SqlTypes;
1610
import org.hibernate.type.descriptor.ValueBinder;
@@ -23,9 +17,14 @@
2317
import org.hibernate.type.descriptor.jdbc.BasicExtractor;
2418
import org.hibernate.type.descriptor.jdbc.JdbcLiteralFormatter;
2519
import org.hibernate.type.descriptor.jdbc.JdbcType;
20+
import org.hibernate.type.descriptor.jdbc.JsonHelper;
2621
import org.hibernate.type.descriptor.jdbc.JsonJdbcType;
2722

2823
import io.vertx.core.json.JsonArray;
24+
import java.sql.CallableStatement;
25+
import java.sql.PreparedStatement;
26+
import java.sql.ResultSet;
27+
import java.sql.SQLException;
2928

3029
/**
3130
* @see org.hibernate.type.descriptor.jdbc.JsonArrayJdbcType

hibernate-reactive-core/src/main/java/org/hibernate/reactive/type/descriptor/jdbc/ReactiveOracleArrayJdbcType.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313

1414
import org.hibernate.HibernateException;
1515
import org.hibernate.dialect.Dialect;
16-
import org.hibernate.dialect.OracleArrayJdbcType;
16+
17+
import org.hibernate.dialect.type.OracleArrayJdbcType;
1718
import org.hibernate.reactive.adaptor.impl.ArrayAdaptor;
1819
import org.hibernate.type.BasicType;
1920
import org.hibernate.type.descriptor.ValueBinder;
@@ -30,7 +31,7 @@
3031
import static java.sql.Types.ARRAY;
3132

3233
/**
33-
* @see org.hibernate.dialect.OracleArrayJdbcType
34+
* @see org.hibernate.dialect.type.OracleArrayJdbcType
3435
*/
3536
public class ReactiveOracleArrayJdbcType extends OracleArrayJdbcType {
3637

hibernate-reactive-core/src/main/java/org/hibernate/reactive/type/descriptor/jdbc/ReactiveXmlArrayJdbcType.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@
55
*/
66
package org.hibernate.reactive.type.descriptor.jdbc;
77

8-
import java.sql.CallableStatement;
9-
import java.sql.PreparedStatement;
10-
import java.sql.SQLException;
11-
import java.sql.SQLXML;
12-
13-
import org.hibernate.dialect.XmlHelper;
148
import org.hibernate.reactive.logging.impl.Log;
159
import org.hibernate.type.descriptor.ValueBinder;
1610
import org.hibernate.type.descriptor.WrapperOptions;
1711
import org.hibernate.type.descriptor.java.JavaType;
1812
import org.hibernate.type.descriptor.jdbc.BasicBinder;
1913
import org.hibernate.type.descriptor.jdbc.JdbcType;
2014
import org.hibernate.type.descriptor.jdbc.XmlArrayJdbcType;
15+
import org.hibernate.type.descriptor.jdbc.XmlHelper;
16+
17+
import java.sql.CallableStatement;
18+
import java.sql.PreparedStatement;
19+
import java.sql.SQLException;
20+
import java.sql.SQLXML;
2121

2222
import static java.lang.invoke.MethodHandles.lookup;
2323
import static org.hibernate.reactive.logging.impl.LoggerFactory.make;

hibernate-reactive-core/src/main/java/org/hibernate/reactive/type/descriptor/jdbc/ReactiveXmlJdbcType.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,20 @@
55
*/
66
package org.hibernate.reactive.type.descriptor.jdbc;
77

8-
import java.sql.CallableStatement;
9-
import java.sql.PreparedStatement;
10-
import java.sql.SQLException;
11-
import java.sql.SQLXML;
12-
13-
import org.hibernate.dialect.XmlHelper;
148
import org.hibernate.metamodel.mapping.EmbeddableMappingType;
159
import org.hibernate.reactive.logging.impl.Log;
1610
import org.hibernate.type.descriptor.ValueBinder;
1711
import org.hibernate.type.descriptor.WrapperOptions;
1812
import org.hibernate.type.descriptor.java.JavaType;
1913
import org.hibernate.type.descriptor.jdbc.BasicBinder;
14+
import org.hibernate.type.descriptor.jdbc.XmlHelper;
2015
import org.hibernate.type.descriptor.jdbc.XmlJdbcType;
2116

17+
import java.sql.CallableStatement;
18+
import java.sql.PreparedStatement;
19+
import java.sql.SQLException;
20+
import java.sql.SQLXML;
21+
2222
import static java.lang.invoke.MethodHandles.lookup;
2323
import static org.hibernate.reactive.logging.impl.LoggerFactory.make;
2424

hibernate-reactive-core/src/test/java/org/hibernate/reactive/containers/OracleDatabase.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@ class OracleDatabase implements TestableDatabase {
5757
expectedDBTypeForClass.put( Integer.class, "NUMBER" );
5858
expectedDBTypeForClass.put( long.class, "NUMBER" );
5959
expectedDBTypeForClass.put( Long.class, "NUMBER" );
60-
expectedDBTypeForClass.put( float.class, "FLOAT" );
61-
expectedDBTypeForClass.put( Float.class, "FLOAT" );
62-
expectedDBTypeForClass.put( double.class, "FLOAT" );
63-
expectedDBTypeForClass.put( Double.class, "FLOAT" );
60+
expectedDBTypeForClass.put( float.class, "BINARY_FLOAT" );
61+
expectedDBTypeForClass.put( Float.class, "BINARY_FLOAT" );
62+
expectedDBTypeForClass.put( double.class, "BINARY_DOUBLE" );
63+
expectedDBTypeForClass.put( Double.class, "BINARY_DOUBLE" );
6464
expectedDBTypeForClass.put( byte.class, "NUMBER" );
6565
expectedDBTypeForClass.put( Byte.class, "NUMBER" );
6666
expectedDBTypeForClass.put( URL.class, "VARCHAR2" );

0 commit comments

Comments
 (0)