77
88import java .util .concurrent .CompletionStage ;
99
10- import org .hibernate .FlushMode ;
1110import org .hibernate .LockOptions ;
1211import org .hibernate .engine .spi .SharedSessionContractImplementor ;
1312import org .hibernate .internal .util .collections .ArrayHelper ;
1413import org .hibernate .metamodel .mapping .EntityMappingType ;
14+ import org .hibernate .query .Query ;
15+ import org .hibernate .query .QueryFlushMode ;
1516import org .hibernate .query .named .NamedQueryMemento ;
16- import org .hibernate .query .spi .QueryImplementor ;
1717import org .hibernate .reactive .loader .ast .spi .ReactiveSingleIdEntityLoader ;
1818import org .hibernate .reactive .query .ReactiveSelectionQuery ;
1919
2020import jakarta .persistence .Parameter ;
21+ import org .hibernate .type .descriptor .java .JavaType ;
2122
2223import static org .hibernate .reactive .util .impl .CompletionStages .completedFuture ;
2324
@@ -30,9 +31,9 @@ public class ReactiveSingleIdEntityLoaderProvidedQueryImpl<T> implements Reactiv
3031 private static final CompletionStage <Object []> EMPTY_ARRAY_STAGE = completedFuture ( ArrayHelper .EMPTY_OBJECT_ARRAY );
3132
3233 private final EntityMappingType entityDescriptor ;
33- private final NamedQueryMemento namedQueryMemento ;
34+ private final NamedQueryMemento < T > namedQueryMemento ;
3435
35- public ReactiveSingleIdEntityLoaderProvidedQueryImpl (EntityMappingType entityDescriptor , NamedQueryMemento namedQueryMemento ) {
36+ public ReactiveSingleIdEntityLoaderProvidedQueryImpl (EntityMappingType entityDescriptor , NamedQueryMemento < T > namedQueryMemento ) {
3637 this .entityDescriptor = entityDescriptor ;
3738 this .namedQueryMemento = namedQueryMemento ;
3839 }
@@ -42,17 +43,13 @@ public EntityMappingType getLoadable() {
4243 return entityDescriptor ;
4344 }
4445
45- @ Override
46+ @ Override @ SuppressWarnings ( "unchecked" )
4647 public CompletionStage <T > load (Object pkValue , LockOptions lockOptions , Boolean readOnly , SharedSessionContractImplementor session ) {
47- // noinspection unchecked
48- final QueryImplementor <T > query = namedQueryMemento
49- .toQuery ( session , entityDescriptor .getMappedJavaType ().getJavaTypeClass () );
50-
51- //noinspection unchecked
48+ final JavaType <T > mappedJavaType = (JavaType <T >) entityDescriptor .getMappedJavaType ();
49+ final Query <T > query = namedQueryMemento .toQuery ( session , mappedJavaType .getJavaTypeClass () );
5250 query .setParameter ( (Parameter <Object >) query .getParameters ().iterator ().next (), pkValue );
53- query .setHibernateFlushMode ( FlushMode .MANUAL );
54-
55- return ( (ReactiveSelectionQuery ) query ).reactiveUnique ();
51+ query .setQueryFlushMode ( QueryFlushMode .NO_FLUSH );
52+ return ( (ReactiveSelectionQuery <T >) query ).reactiveUnique ();
5653 }
5754
5855 @ Override
0 commit comments