66import com .introproventures .graphql .jpa .query .schema .RestrictedKeysProvider ;
77import com .introproventures .graphql .jpa .query .schema .impl .GraphQLJpaSchemaBuilder ;
88import graphql .GraphQL ;
9+ import graphql .execution .AsyncExecutionStrategy ;
10+ import graphql .execution .SubscriptionExecutionStrategy ;
911import jakarta .persistence .EntityManager ;
1012import jakarta .persistence .EntityManagerFactory ;
1113import org .slf4j .Logger ;
@@ -51,7 +53,8 @@ QueryExecutionStrategyProvider queryExecutionStrategy(
5153 var transactionTemplate = graphQLSchemaTransactionTemplate .get ();
5254 transactionTemplate .setReadOnly (true );
5355
54- return () -> newTransactionalExecutionStrategy (transactionTemplate ).build ();
56+ return () ->
57+ newTransactionalExecutionStrategy (transactionTemplate ).delegate (new AsyncExecutionStrategy ()).build ();
5558 }
5659
5760 @ Bean
@@ -63,7 +66,8 @@ MutationExecutionStrategyProvider mutationExecutionStrategy(
6366 var transactionTemplate = graphQLSchemaTransactionTemplate .get ();
6467 transactionTemplate .setPropagationBehavior (TransactionDefinition .PROPAGATION_REQUIRES_NEW );
6568
66- return () -> newTransactionalExecutionStrategy (transactionTemplate ).build ();
69+ return () ->
70+ newTransactionalExecutionStrategy (transactionTemplate ).delegate (new AsyncExecutionStrategy ()).build ();
6771 }
6872
6973 @ Bean
@@ -74,8 +78,12 @@ SubscriptionExecutionStrategyProvider subscriptionExecutionStrategy(
7478 ) {
7579 var transactionTemplate = graphQLSchemaTransactionTemplate .get ();
7680 transactionTemplate .setPropagationBehavior (TransactionDefinition .PROPAGATION_SUPPORTS );
81+ transactionTemplate .setReadOnly (true );
7782
78- return () -> newTransactionalExecutionStrategy (transactionTemplate ).build ();
83+ return () ->
84+ newTransactionalExecutionStrategy (transactionTemplate )
85+ .delegate (new SubscriptionExecutionStrategy ())
86+ .build ();
7987 }
8088
8189 @ Bean
0 commit comments