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 c8bc1f6

Browse files
three code cleanups
1 parent dde66e0 commit c8bc1f6

File tree

4 files changed

+75
-82
lines changed

4 files changed

+75
-82
lines changed

‎hibernate-reactive-core/src/main/java/org/hibernate/reactive/event/impl/AbstractReactiveSaveEventListener.java‎

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -180,23 +180,21 @@ private CompletionStage<Object> generateId(
180180
EventSource source,
181181
ReactiveIdentifierGenerator<?> generator,
182182
EntityPersister persister) {
183-
return generator
184-
.generate( (ReactiveConnectionSupplier) source, entity )
183+
return generator.generate( (ReactiveConnectionSupplier) source, entity )
185184
.thenApply( id -> {
186-
final Object generatedId = castToIdentifierType( id, persister );
187-
if ( generatedId == null ) {
188-
throw new IdentifierGenerationException( "null id generated for: " + entity.getClass() );
189-
}
190-
if ( LOG.isDebugEnabled() ) {
191-
LOG.debugf(
192-
"Generated identifier: %s, using strategy: %s",
193-
persister.getIdentifierType().toLoggableString( generatedId, source.getFactory() ),
194-
generator.getClass().getName()
195-
);
196-
}
197-
return generatedId;
198-
}
199-
);
185+
final Object generatedId = castToIdentifierType( id, persister );
186+
if ( generatedId == null ) {
187+
throw new IdentifierGenerationException( "null id generated for: " + entity.getClass() );
188+
}
189+
if ( LOG.isDebugEnabled() ) {
190+
LOG.debugf(
191+
"Generated identifier: %s, using strategy: %s",
192+
persister.getIdentifierType().toLoggableString( generatedId, source.getFactory() ),
193+
generator.getClass().getName()
194+
);
195+
}
196+
return generatedId;
197+
} );
200198
}
201199

202200
/**

‎hibernate-reactive-core/src/main/java/org/hibernate/reactive/session/ReactiveQueryProducer.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,13 @@ public interface ReactiveQueryProducer extends ReactiveConnectionSupplier {
6363

6464
<R> ReactiveNativeQuery<R> createReactiveNativeQuery(String sqlString, Class<R> resultClass);
6565

66+
@Deprecated(forRemoval = true)
6667
<R> ReactiveNativeQuery<R> createReactiveNativeQuery(String sqlString, Class<R> resultClass, String tableAlias);
6768

69+
@Deprecated(forRemoval = true)
6870
<R> ReactiveNativeQuery<R> createReactiveNativeQuery(String sqlString, String resultSetMappingName);
6971

72+
@Deprecated(forRemoval = true)
7073
<R> ReactiveNativeQuery<R> createReactiveNativeQuery(String sqlString, String resultSetMappingName, Class<R> resultClass);
7174

7275
<R> ReactiveSelectionQuery<R> createReactiveSelectionQuery(String hqlString, Class<R> resultType);

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

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -415,23 +415,21 @@ public void prepareForQueryExecution(boolean requiresTxn) {
415415
@Override
416416
public <T> ReactiveNativeQuery<T> createReactiveNativeQuery(String sqlString, Class<T> resultClass) {
417417
final ReactiveNativeQuery<T> query = createReactiveNativeQuery( sqlString );
418-
return addResultType( resultClass, query );
418+
handleTupleResultType( resultClass, query );
419+
addEntityOrResultType( resultClass, query );
420+
return query;
419421
}
420422

421-
private <T> ReactiveNativeQuery<T> addResultType(Class<T> resultClass, ReactiveNativeQuery<T> query) {
422-
if ( Tuple.class.equals( resultClass ) ) {
423-
query.setTupleTransformer( new NativeQueryTupleTransformer() );
424-
}
425-
else if ( getFactory().getMappingMetamodel().isEntityClass( resultClass ) ) {
423+
private <T> void addEntityOrResultType(Class<T> resultClass, ReactiveNativeQuery<T> query) {
424+
if ( getFactory().getMappingMetamodel().isEntityClass( resultClass ) ) {
426425
query.addEntity( "alias1", resultClass.getName(), LockMode.READ );
427426
}
428-
else if ( resultClass != Object.class && resultClass != Object[].class ) {
427+
else if ( resultClass != Object.class && resultClass != Object[].class && resultClass != Tuple.class) {
429428
query.addResultTypeClass( resultClass );
430429
}
431-
return query;
432430
}
433431

434-
@Override
432+
@Override@Deprecated(forRemoval = true)
435433
public <R> ReactiveNativeQuery<R> createReactiveNativeQuery(String sqlString, Class<R> resultClass, String tableAlias) {
436434
final ReactiveNativeQuery<R> query = createReactiveNativeQuery( sqlString );
437435
if ( getFactory().getMappingMetamodel().isEntityClass( resultClass ) ) {
@@ -443,7 +441,7 @@ public <R> ReactiveNativeQuery<R> createReactiveNativeQuery(String sqlString, Cl
443441
}
444442
}
445443

446-
@Override
444+
@Override@Deprecated(forRemoval = true)
447445
public <R> ReactiveNativeQuery<R> createReactiveNativeQuery(String sqlString, String resultSetMappingName) {
448446
checkOpen();
449447
pulseTransactionCoordinator();
@@ -460,12 +458,10 @@ public <R> ReactiveNativeQuery<R> createReactiveNativeQuery(String sqlString, St
460458
}
461459
}
462460

463-
@Override
461+
@Override@Deprecated(forRemoval = true)
464462
public <R> ReactiveNativeQuery<R> createReactiveNativeQuery(String sqlString, String resultSetMappingName, Class<R> resultClass) {
465463
final ReactiveNativeQuery<R> query = createReactiveNativeQuery( sqlString, resultSetMappingName );
466-
if ( Tuple.class.equals( resultClass ) ) {
467-
query.setTupleTransformer( new NativeQueryTupleTransformer() );
468-
}
464+
handleTupleResultType( resultClass, query );
469465
return query;
470466
}
471467

@@ -610,7 +606,15 @@ private void addAffectedEntities(AffectedEntities affectedEntities, NativeQueryI
610606
@Override
611607
public <R> ReactiveNativeQuery<R> createReactiveNativeQuery(String queryString, Class<R> resultType, AffectedEntities affectedEntities) {
612608
final ReactiveNativeQuery<R> query = createReactiveNativeQuery( queryString, affectedEntities );
613-
return addResultType( resultType, query );
609+
handleTupleResultType( resultType, query );
610+
addEntityOrResultType( resultType, query );
611+
return query;
612+
}
613+
614+
private static <R> void handleTupleResultType(Class<R> resultType, ReactiveNativeQuery<R> query) {
615+
if ( Tuple.class.equals(resultType) ) {
616+
query.setTupleTransformer( NativeQueryTupleTransformer.INSTANCE );
617+
}
614618
}
615619

616620
@Override

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

Lines changed: 39 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,8 @@
5151
import org.hibernate.query.criteria.JpaCriteriaQuery;
5252
import org.hibernate.query.criteria.JpaRoot;
5353
import org.hibernate.query.hql.spi.SqmQueryImplementor;
54-
import org.hibernate.query.named.NamedResultSetMappingMemento;
5554
import org.hibernate.query.spi.HqlInterpretation;
5655
import org.hibernate.query.spi.QueryImplementor;
57-
import org.hibernate.query.sql.internal.NativeQueryImpl;
5856
import org.hibernate.query.sql.spi.NativeQueryImplementor;
5957
import org.hibernate.query.sqm.internal.SqmUtil;
6058
import org.hibernate.query.sqm.tree.SqmStatement;
@@ -372,12 +370,18 @@ private void firePostInsert(Object entity, Object id, Object[] state, EntityPers
372370

373371
private CompletionStage<?> generateId(EntityPersister persister, Object entity, Generator generator) {
374372
if ( generator.generatesOnInsert() ) {
375-
return generator instanceof ReactiveIdentifierGenerator
376-
? ( (ReactiveIdentifierGenerator<?>) generator ).generate( this, this )
377-
: completedFuture( ( (BeforeExecutionGenerator) generator ).generate( this, entity, null, INSERT ) );
378-
}
373+
if ( generator instanceof ReactiveIdentifierGenerator<?> reactiveGenerator ) {
374+
return reactiveGenerator.generate(this, this);
375+
}
376+
else if ( generator instanceof BeforeExecutionGenerator beforeExecutionGenerator ) {
377+
return completedFuture( beforeExecutionGenerator.generate(this, entity, null, INSERT) );
378+
}
379+
else {
380+
throw new IllegalArgumentException( "Unsupported generator type: " + generator.getClass().getName() );
381+
}
382+
}
379383
else {
380-
Object id = persister.getIdentifier( entity, this );
384+
finalObject id = persister.getIdentifier( entity, this );
381385
if ( id == null ) {
382386
throw new IdentifierGenerationException( "Identifier of entity '" + persister.getEntityName() + "' must be manually assigned before calling 'insert()'" );
383387
}
@@ -878,8 +882,7 @@ public <R> ReactiveNativeQueryImplementor<R> createReactiveNativeQuery(String sq
878882
delayedAfterCompletion();
879883

880884
try {
881-
ReactiveNativeQueryImpl<R> query = new ReactiveNativeQueryImpl<>( sqlString, this);
882-
885+
final ReactiveNativeQueryImpl<R> query = new ReactiveNativeQueryImpl<>( sqlString, this );
883886
if ( isEmpty( query.getComment() ) ) {
884887
query.setComment( "dynamic native SQL query" );
885888
}
@@ -893,69 +896,60 @@ public <R> ReactiveNativeQueryImplementor<R> createReactiveNativeQuery(String sq
893896

894897
@Override
895898
public <R> ReactiveNativeQuery<R> createReactiveNativeQuery(String sqlString, Class<R> resultClass) {
896-
ReactiveNativeQuery<R> query = createReactiveNativeQuery( sqlString );
897-
if ( Tuple.class.equals( resultClass ) ) {
898-
query.setTupleTransformer( new NativeQueryTupleTransformer() );
899-
}
900-
else if ( getFactory().getMappingMetamodel().isEntityClass( resultClass ) ) {
899+
final ReactiveNativeQuery<R> query = createReactiveNativeQuery( sqlString );
900+
handleTupleResultType( resultClass, query );
901+
addEntityOrResultType( resultClass, query );
902+
return query;
903+
}
904+
905+
private <R> void addEntityOrResultType(Class<R> resultClass, ReactiveNativeQuery<R> query) {
906+
if ( getFactory().getMappingMetamodel().isEntityClass( resultClass ) ) {
901907
query.addEntity( "alias1", resultClass.getName(), LockMode.READ );
902908
}
903-
else {
904-
( (NativeQueryImpl<?>) query ).addScalar( 1, resultClass );
909+
else if ( resultClass != Object.class && resultClass != Object[].class && resultClass != Tuple.class ) {
910+
query.addResultTypeClass( resultClass );
905911
}
906-
return query;
907912
}
908913

909-
@Override
914+
@Override@Deprecated(forRemoval = true)
910915
public <R> ReactiveNativeQuery<R> createReactiveNativeQuery(
911916
String sqlString,
912917
Class<R> resultClass,
913918
String tableAlias) {
914919
final ReactiveNativeQuery<R> query = createReactiveNativeQuery( sqlString );
915-
if ( getFactory().getMappingMetamodel().isEntityClass(resultClass) ) {
920+
if ( getFactory().getMappingMetamodel().isEntityClass(resultClass) ) {
916921
query.addEntity( tableAlias, resultClass.getName(), LockMode.READ );
917922
return query;
918923
}
919-
920-
throw new UnknownEntityTypeException( "unable to locate persister: " + resultClass.getName() );
924+
else {
925+
throw new UnknownEntityTypeException( "unable to locate persister: " + resultClass.getName() );
926+
}
921927
}
922928

923-
@Override
929+
@Override@Deprecated(forRemoval = true)
924930
public <R> ReactiveNativeQuery<R> createReactiveNativeQuery(String sqlString, String resultSetMappingName) {
925931
checkOpen();
926932
pulseTransactionCoordinator();
927933
delayedAfterCompletion();
928934

929935
try {
930-
if ( isNotEmpty( resultSetMappingName ) ) {
931-
final NamedResultSetMappingMemento resultSetMappingMemento = getFactory().getQueryEngine()
932-
.getNamedObjectRepository()
933-
.getResultSetMappingMemento( resultSetMappingName );
934-
935-
if ( resultSetMappingMemento == null ) {
936-
throw new HibernateException( "Could not resolve specified result-set mapping name : " + resultSetMappingName );
937-
}
938-
return new ReactiveNativeQueryImpl<>( sqlString, resultSetMappingMemento, this );
939-
}
940-
else {
941-
return new ReactiveNativeQueryImpl<>( sqlString, this );
942-
}
936+
return isNotEmpty( resultSetMappingName )
937+
? new ReactiveNativeQueryImpl<>( sqlString, getResultSetMappingMemento( resultSetMappingName ), this )
938+
: new ReactiveNativeQueryImpl<>( sqlString, this );
943939
//TODO: why no applyQuerySettingsAndHints( query ); ???
944940
}
945941
catch (RuntimeException he) {
946942
throw getExceptionConverter().convert( he );
947943
}
948944
}
949945

950-
@Override
946+
@Override@Deprecated(forRemoval = true)
951947
public <R> ReactiveNativeQuery<R> createReactiveNativeQuery(
952948
String sqlString,
953949
String resultSetMappingName,
954950
Class<R> resultClass) {
955951
final ReactiveNativeQuery<R> query = createReactiveNativeQuery( sqlString, resultSetMappingName );
956-
if ( Tuple.class.equals( resultClass ) ) {
957-
query.setTupleTransformer( new NativeQueryTupleTransformer() );
958-
}
952+
handleTupleResultType( resultClass, query );
959953
return query;
960954
}
961955

@@ -1097,21 +1091,15 @@ public <R> ReactiveNativeQuery<R> createReactiveNativeQuery(
10971091
Class<R> resultType,
10981092
AffectedEntities affectedEntities) {
10991093
final ReactiveNativeQuery<R> query = createReactiveNativeQuery( queryString, affectedEntities );
1100-
return addResultType( resultType, query );
1094+
handleTupleResultType( resultType, query );
1095+
addEntityOrResultType( resultType, query );
1096+
return query;
11011097
}
11021098

1103-
//TODO: copy/paste from ORM, change visibility
1104-
private <T> ReactiveNativeQuery<T> addResultType(Class<T> resultClass, ReactiveNativeQuery<T> query) {
1105-
if ( Tuple.class.equals( resultClass ) ) {
1106-
query.setTupleTransformer( new NativeQueryTupleTransformer() );
1099+
private static <R> void handleTupleResultType(Class<R> resultType, ReactiveNativeQuery<R> query) {
1100+
if ( Tuple.class.equals(resultType) ) {
1101+
query.setTupleTransformer( NativeQueryTupleTransformer.INSTANCE );
11071102
}
1108-
else if ( getFactory().getMappingMetamodel().isEntityClass( resultClass ) ) {
1109-
query.addEntity( "alias1", resultClass.getName(), LockMode.READ );
1110-
}
1111-
else if ( resultClass != Object.class && resultClass != Object[].class ) {
1112-
query.addScalar( 1, resultClass );
1113-
}
1114-
return query;
11151103
}
11161104

11171105
@Override

0 commit comments

Comments
(0)

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