8
8
import io .smallrye .mutiny .Uni ;
9
9
import jakarta .persistence .EntityGraph ;
10
10
import jakarta .persistence .TypedQueryReference ;
11
+ import jakarta .persistence .criteria .CriteriaBuilder ;
11
12
import jakarta .persistence .criteria .CriteriaDelete ;
12
13
import jakarta .persistence .criteria .CriteriaQuery ;
13
14
import jakarta .persistence .criteria .CriteriaUpdate ;
15
+
14
16
import org .hibernate .LockMode ;
15
17
import org .hibernate .graph .spi .RootGraphImplementor ;
18
+ import org .hibernate .query .criteria .JpaCriteriaInsert ;
19
+ import org .hibernate .reactive .common .AffectedEntities ;
16
20
import org .hibernate .reactive .common .ResultSetMapping ;
17
21
import org .hibernate .reactive .mutiny .Mutiny ;
18
22
import org .hibernate .reactive .mutiny .Mutiny .Query ;
21
25
import org .hibernate .reactive .query .ReactiveQuery ;
22
26
import org .hibernate .reactive .session .ReactiveStatelessSession ;
23
27
28
+ import jakarta .persistence .metamodel .Attribute ;
24
29
import java .util .List ;
25
30
import java .util .concurrent .CompletableFuture ;
26
31
import java .util .concurrent .CompletionStage ;
27
32
import java .util .function .Function ;
28
33
import java .util .function .Supplier ;
29
34
30
-
31
35
/**
32
36
* Implements the {@link Mutiny.StatelessSession} API. This delegating
33
37
* class is needed to avoid name clashes when implementing both
@@ -47,7 +51,6 @@ public ReactiveConnection getReactiveConnection() {
47
51
return delegate .getReactiveConnection ();
48
52
}
49
53
50
-
51
54
<T > Uni <T > uni (Supplier <CompletionStage <T >> stageSupplier ) {
52
55
return factory .uni ( stageSupplier );
53
56
}
@@ -91,12 +94,47 @@ public <R> SelectionQuery<R> createQuery(String queryString, Class<R> resultType
91
94
92
95
@ Override
93
96
public <R > SelectionQuery <R > createSelectionQuery (String queryString , Class <R > resultType ) {
94
- return new MutinySelectionQueryImpl <>( delegate .createReactiveSelectionQuery ( queryString , resultType ), factory );
97
+ return new MutinySelectionQueryImpl <>( delegate .createReactiveSelectionQuery ( queryString , resultType ), factory );
95
98
}
96
99
97
100
@ Override
98
101
public Mutiny .MutationQuery createMutationQuery (String queryString ) {
99
- return new MutinyMutationQueryImpl <>( delegate .createReactiveMutationQuery ( queryString ), factory );
102
+ return new MutinyMutationQueryImpl <>( delegate .createReactiveMutationQuery ( queryString ), factory );
103
+ }
104
+
105
+ @ Override
106
+ public Mutiny .MutationQuery createMutationQuery (CriteriaUpdate <?> updateQuery ) {
107
+ return new MutinyMutationQueryImpl <>( delegate .createReactiveMutationQuery ( updateQuery ), factory );
108
+ }
109
+
110
+ @ Override
111
+ public Mutiny .MutationQuery createMutationQuery (CriteriaDelete <?> deleteQuery ) {
112
+ return null ;
113
+ }
114
+
115
+ @ Override
116
+ public Mutiny .MutationQuery createMutationQuery (JpaCriteriaInsert <?> insert ) {
117
+ return null ;
118
+ }
119
+
120
+ @ Override
121
+ public <R > Query <R > createNativeQuery (String queryString , AffectedEntities affectedEntities ) {
122
+ return null ;
123
+ }
124
+
125
+ @ Override
126
+ public <R > SelectionQuery <R > createNativeQuery (String queryString , Class <R > resultType , AffectedEntities affectedEntities ) {
127
+ return null ;
128
+ }
129
+
130
+ @ Override
131
+ public <R > SelectionQuery <R > createNativeQuery (String queryString , ResultSetMapping <R > resultSetMapping , AffectedEntities affectedEntities ) {
132
+ return null ;
133
+ }
134
+
135
+ @ Override
136
+ public <E , T > Uni <T > fetch (E entity , Attribute <E , T > field ) {
137
+ return null ;
100
138
}
101
139
102
140
@ Override
@@ -259,26 +297,6 @@ public Object getIdentifier(Object entity) {
259
297
return delegate .getIdentifier (entity );
260
298
}
261
299
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
300
@ Override
283
301
public <T > Uni <T > withTransaction (Function <Mutiny .Transaction , Uni <T >> work ) {
284
302
return currentTransaction == null ? new Transaction <T >().execute ( work ) : work .apply ( currentTransaction );
@@ -359,6 +377,11 @@ public MutinySessionFactoryImpl getFactory() {
359
377
return factory ;
360
378
}
361
379
380
+ @ Override
381
+ public CriteriaBuilder getCriteriaBuilder () {
382
+ return getFactory ().getCriteriaBuilder ();
383
+ }
384
+
362
385
@ Override
363
386
public <T > ResultSetMapping <T > getResultSetMapping (Class <T > resultType , String mappingName ) {
364
387
return delegate .getResultSetMapping ( resultType , mappingName );
@@ -378,4 +401,9 @@ public <T> EntityGraph<T> createEntityGraph(Class<T> rootType) {
378
401
public <T > EntityGraph <T > createEntityGraph (Class <T > rootType , String graphName ) {
379
402
return delegate .createEntityGraph ( rootType , graphName );
380
403
}
404
+
405
+ @ Override
406
+ public <T > Uni <T > unproxy (T association ) {
407
+ return uni ( () -> delegate .reactiveFetch ( association , true ) );
408
+ }
381
409
}
0 commit comments