5
5
*/
6
6
package org .hibernate .reactive .mutiny .impl ;
7
7
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 ;
14
8
import org .hibernate .LockMode ;
15
9
import org .hibernate .graph .spi .RootGraphImplementor ;
10
+ import org .hibernate .query .criteria .JpaCriteriaInsert ;
11
+ import org .hibernate .reactive .common .AffectedEntities ;
16
12
import org .hibernate .reactive .common .ResultSetMapping ;
17
13
import org .hibernate .reactive .mutiny .Mutiny ;
18
14
import org .hibernate .reactive .mutiny .Mutiny .Query ;
21
17
import org .hibernate .reactive .query .ReactiveQuery ;
22
18
import org .hibernate .reactive .session .ReactiveStatelessSession ;
23
19
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 ;
24
27
import java .util .List ;
25
28
import java .util .concurrent .CompletableFuture ;
26
29
import java .util .concurrent .CompletionStage ;
27
30
import java .util .function .Function ;
28
31
import java .util .function .Supplier ;
29
32
30
-
31
33
/**
32
34
* Implements the {@link Mutiny.StatelessSession} API. This delegating
33
35
* class is needed to avoid name clashes when implementing both
@@ -47,7 +49,6 @@ public ReactiveConnection getReactiveConnection() {
47
49
return delegate .getReactiveConnection ();
48
50
}
49
51
50
-
51
52
<T > Uni <T > uni (Supplier <CompletionStage <T >> stageSupplier ) {
52
53
return factory .uni ( stageSupplier );
53
54
}
@@ -91,12 +92,42 @@ public <R> SelectionQuery<R> createQuery(String queryString, Class<R> resultType
91
92
92
93
@ Override
93
94
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 );
95
96
}
96
97
97
98
@ Override
98
99
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 );
100
131
}
101
132
102
133
@ Override
@@ -259,26 +290,6 @@ public Object getIdentifier(Object entity) {
259
290
return delegate .getIdentifier (entity );
260
291
}
261
292
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
-
282
293
@ Override
283
294
public <T > Uni <T > withTransaction (Function <Mutiny .Transaction , Uni <T >> work ) {
284
295
return currentTransaction == null ? new Transaction <T >().execute ( work ) : work .apply ( currentTransaction );
@@ -359,6 +370,11 @@ public MutinySessionFactoryImpl getFactory() {
359
370
return factory ;
360
371
}
361
372
373
+ @ Override
374
+ public CriteriaBuilder getCriteriaBuilder () {
375
+ return getFactory ().getCriteriaBuilder ();
376
+ }
377
+
362
378
@ Override
363
379
public <T > ResultSetMapping <T > getResultSetMapping (Class <T > resultType , String mappingName ) {
364
380
return delegate .getResultSetMapping ( resultType , mappingName );
0 commit comments