6
6
import com .introproventures .graphql .jpa .query .schema .RestrictedKeysProvider ;
7
7
import com .introproventures .graphql .jpa .query .schema .impl .GraphQLJpaSchemaBuilder ;
8
8
import graphql .GraphQL ;
9
+ import graphql .execution .AsyncExecutionStrategy ;
10
+ import graphql .execution .SubscriptionExecutionStrategy ;
9
11
import jakarta .persistence .EntityManager ;
10
12
import jakarta .persistence .EntityManagerFactory ;
11
13
import org .slf4j .Logger ;
@@ -51,7 +53,8 @@ QueryExecutionStrategyProvider queryExecutionStrategy(
51
53
var transactionTemplate = graphQLSchemaTransactionTemplate .get ();
52
54
transactionTemplate .setReadOnly (true );
53
55
54
- return () -> newTransactionalExecutionStrategy (transactionTemplate ).build ();
56
+ return () ->
57
+ newTransactionalExecutionStrategy (transactionTemplate ).delegate (new AsyncExecutionStrategy ()).build ();
55
58
}
56
59
57
60
@ Bean
@@ -63,7 +66,8 @@ MutationExecutionStrategyProvider mutationExecutionStrategy(
63
66
var transactionTemplate = graphQLSchemaTransactionTemplate .get ();
64
67
transactionTemplate .setPropagationBehavior (TransactionDefinition .PROPAGATION_REQUIRES_NEW );
65
68
66
- return () -> newTransactionalExecutionStrategy (transactionTemplate ).build ();
69
+ return () ->
70
+ newTransactionalExecutionStrategy (transactionTemplate ).delegate (new AsyncExecutionStrategy ()).build ();
67
71
}
68
72
69
73
@ Bean
@@ -74,8 +78,12 @@ SubscriptionExecutionStrategyProvider subscriptionExecutionStrategy(
74
78
) {
75
79
var transactionTemplate = graphQLSchemaTransactionTemplate .get ();
76
80
transactionTemplate .setPropagationBehavior (TransactionDefinition .PROPAGATION_SUPPORTS );
81
+ transactionTemplate .setReadOnly (true );
77
82
78
- return () -> newTransactionalExecutionStrategy (transactionTemplate ).build ();
83
+ return () ->
84
+ newTransactionalExecutionStrategy (transactionTemplate )
85
+ .delegate (new SubscriptionExecutionStrategy ())
86
+ .build ();
79
87
}
80
88
81
89
@ Bean
0 commit comments