55 */
66package org .hibernate .reactive .mutiny .impl ;
77
8- import io .smallrye .mutiny .Uni ;
9- import jakarta .persistence .EntityGraph ;
10- import jakarta .persistence .TypedQueryReference ;
11- import jakarta .persistence .criteria .CriteriaDelete ;
12- import jakarta .persistence .criteria .CriteriaQuery ;
13- import jakarta .persistence .criteria .CriteriaUpdate ;
148import org .hibernate .LockMode ;
159import org .hibernate .graph .spi .RootGraphImplementor ;
10+ import org .hibernate .query .criteria .JpaCriteriaInsert ;
11+ import org .hibernate .reactive .common .AffectedEntities ;
1612import org .hibernate .reactive .common .ResultSetMapping ;
1713import org .hibernate .reactive .mutiny .Mutiny ;
1814import org .hibernate .reactive .mutiny .Mutiny .Query ;
2117import org .hibernate .reactive .query .ReactiveQuery ;
2218import org .hibernate .reactive .session .ReactiveStatelessSession ;
2319
20+ import io .smallrye .mutiny .Uni ;
21+ import jakarta .persistence .EntityGraph ;
22+ import jakarta .persistence .TypedQueryReference ;
23+ import jakarta .persistence .criteria .CriteriaBuilder ;
24+ import jakarta .persistence .criteria .CriteriaDelete ;
25+ import jakarta .persistence .criteria .CriteriaQuery ;
26+ import jakarta .persistence .criteria .CriteriaUpdate ;
2427import java .util .List ;
2528import java .util .concurrent .CompletableFuture ;
2629import java .util .concurrent .CompletionStage ;
2730import java .util .function .Function ;
2831import java .util .function .Supplier ;
2932
30-
3133/**
3234 * Implements the {@link Mutiny.StatelessSession} API. This delegating
3335 * class is needed to avoid name clashes when implementing both
@@ -47,7 +49,6 @@ public ReactiveConnection getReactiveConnection() {
4749 return delegate .getReactiveConnection ();
4850 }
4951
50-
5152 <T > Uni <T > uni (Supplier <CompletionStage <T >> stageSupplier ) {
5253 return factory .uni ( stageSupplier );
5354 }
@@ -91,12 +92,42 @@ public <R> SelectionQuery<R> createQuery(String queryString, Class<R> resultType
9192
9293 @ Override
9394 public <R > SelectionQuery <R > createSelectionQuery (String queryString , Class <R > resultType ) {
94- return new MutinySelectionQueryImpl <>( delegate .createReactiveSelectionQuery ( queryString , resultType ), factory );
95+ return new MutinySelectionQueryImpl <>( delegate .createReactiveSelectionQuery ( queryString , resultType ), factory );
9596 }
9697
9798 @ Override
9899 public Mutiny .MutationQuery createMutationQuery (String queryString ) {
99- return new MutinyMutationQueryImpl <>( delegate .createReactiveMutationQuery ( queryString ), factory );
100+ return new MutinyMutationQueryImpl <>( delegate .createReactiveMutationQuery ( queryString ), factory );
101+ }
102+
103+ @ Override
104+ public Mutiny .MutationQuery createMutationQuery (CriteriaUpdate <?> updateQuery ) {
105+ return new MutinyMutationQueryImpl <>( delegate .createReactiveMutationQuery ( updateQuery ), factory );
106+ }
107+
108+ @ Override
109+ public Mutiny .MutationQuery createMutationQuery (CriteriaDelete <?> deleteQuery ) {
110+ return new MutinyMutationQueryImpl <>( delegate .createReactiveMutationQuery ( deleteQuery ) , factory );
111+ }
112+
113+ @ Override
114+ public Mutiny .MutationQuery createMutationQuery (JpaCriteriaInsert <?> insert ) {
115+ return new MutinyMutationQueryImpl <>( delegate .createReactiveMutationQuery ( insert ) , factory );
116+ }
117+
118+ @ Override
119+ public <R > Query <R > createNativeQuery (String queryString , AffectedEntities affectedEntities ) {
120+ return new MutinyQueryImpl <>( delegate .createReactiveNativeQuery ( queryString , affectedEntities ), factory );
121+ }
122+
123+ @ Override
124+ public <R > SelectionQuery <R > createNativeQuery (String queryString , Class <R > resultType , AffectedEntities affectedEntities ) {
125+ return new MutinyQueryImpl <>( delegate .createReactiveNativeQuery ( queryString , resultType , affectedEntities ), factory );
126+ }
127+
128+ @ Override
129+ public <R > SelectionQuery <R > createNativeQuery (String queryString , ResultSetMapping <R > resultSetMapping , AffectedEntities affectedEntities ) {
130+ return new MutinyQueryImpl <>( delegate .createReactiveNativeQuery ( queryString , resultSetMapping , affectedEntities ), factory );
100131 }
101132
102133 @ Override
@@ -259,26 +290,6 @@ public Object getIdentifier(Object entity) {
259290 return delegate .getIdentifier (entity );
260291 }
261292
262- // @Override
263- // public <T> ResultSetMapping<T> getResultSetMapping(Class<T> resultType, String mappingName) {
264- // return delegate.getResultSetMapping( resultType, mappingName );
265- // }
266- //
267- // @Override
268- // public <T> EntityGraph<T> getEntityGraph(Class<T> entity, String name) {
269- // return delegate.getEntityGraph( entity, name );
270- // }
271- //
272- // @Override
273- // public <T> EntityGraph<T> createEntityGraph(Class<T> entity) {
274- // return delegate.createEntityGraph( entity );
275- // }
276- //
277- // @Override
278- // public <T> EntityGraph<T> createEntityGraph(Class<T> entity, String name) {
279- // return delegate.createEntityGraph( entity, name );
280- // }
281-
282293 @ Override
283294 public <T > Uni <T > withTransaction (Function <Mutiny .Transaction , Uni <T >> work ) {
284295 return currentTransaction == null ? new Transaction <T >().execute ( work ) : work .apply ( currentTransaction );
@@ -359,6 +370,11 @@ public MutinySessionFactoryImpl getFactory() {
359370 return factory ;
360371 }
361372
373+ @ Override
374+ public CriteriaBuilder getCriteriaBuilder () {
375+ return getFactory ().getCriteriaBuilder ();
376+ }
377+
362378 @ Override
363379 public <T > ResultSetMapping <T > getResultSetMapping (Class <T > resultType , String mappingName ) {
364380 return delegate .getResultSetMapping ( resultType , mappingName );
0 commit comments