88import io .smallrye .mutiny .Uni ;
99import jakarta .persistence .EntityGraph ;
1010import jakarta .persistence .TypedQueryReference ;
11+ import jakarta .persistence .criteria .CriteriaBuilder ;
1112import jakarta .persistence .criteria .CriteriaDelete ;
1213import jakarta .persistence .criteria .CriteriaQuery ;
1314import jakarta .persistence .criteria .CriteriaUpdate ;
15+
1416import org .hibernate .LockMode ;
1517import org .hibernate .graph .spi .RootGraphImplementor ;
18+ import org .hibernate .query .criteria .JpaCriteriaInsert ;
19+ import org .hibernate .reactive .common .AffectedEntities ;
1620import org .hibernate .reactive .common .ResultSetMapping ;
1721import org .hibernate .reactive .mutiny .Mutiny ;
1822import org .hibernate .reactive .mutiny .Mutiny .Query ;
2125import org .hibernate .reactive .query .ReactiveQuery ;
2226import org .hibernate .reactive .session .ReactiveStatelessSession ;
2327
28+ import jakarta .persistence .metamodel .Attribute ;
2429import java .util .List ;
2530import java .util .concurrent .CompletableFuture ;
2631import java .util .concurrent .CompletionStage ;
2732import java .util .function .Function ;
2833import java .util .function .Supplier ;
2934
30-
3135/**
3236 * Implements the {@link Mutiny.StatelessSession} API. This delegating
3337 * class is needed to avoid name clashes when implementing both
@@ -47,7 +51,6 @@ public ReactiveConnection getReactiveConnection() {
4751 return delegate .getReactiveConnection ();
4852 }
4953
50-
5154 <T > Uni <T > uni (Supplier <CompletionStage <T >> stageSupplier ) {
5255 return factory .uni ( stageSupplier );
5356 }
@@ -91,12 +94,47 @@ public <R> SelectionQuery<R> createQuery(String queryString, Class<R> resultType
9194
9295 @ Override
9396 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 );
9598 }
9699
97100 @ Override
98101 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 ;
100138 }
101139
102140 @ Override
@@ -259,26 +297,6 @@ public Object getIdentifier(Object entity) {
259297 return delegate .getIdentifier (entity );
260298 }
261299
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-
282300 @ Override
283301 public <T > Uni <T > withTransaction (Function <Mutiny .Transaction , Uni <T >> work ) {
284302 return currentTransaction == null ? new Transaction <T >().execute ( work ) : work .apply ( currentTransaction );
@@ -359,6 +377,11 @@ public MutinySessionFactoryImpl getFactory() {
359377 return factory ;
360378 }
361379
380+ @ Override
381+ public CriteriaBuilder getCriteriaBuilder () {
382+ return getFactory ().getCriteriaBuilder ();
383+ }
384+
362385 @ Override
363386 public <T > ResultSetMapping <T > getResultSetMapping (Class <T > resultType , String mappingName ) {
364387 return delegate .getResultSetMapping ( resultType , mappingName );
@@ -378,4 +401,9 @@ public <T> EntityGraph<T> createEntityGraph(Class<T> rootType) {
378401 public <T > EntityGraph <T > createEntityGraph (Class <T > rootType , String graphName ) {
379402 return delegate .createEntityGraph ( rootType , graphName );
380403 }
404+
405+ @ Override
406+ public <T > Uni <T > unproxy (T association ) {
407+ return uni ( () -> delegate .reactiveFetch ( association , true ) );
408+ }
381409}
0 commit comments