I have a method as below:
ClassA.java
@Transactional
public void methodA(){
ExecutorService executorService = Executors.newFixedThreadPool(4);
No, methodB()
will not be executed in the same transaction as methodA()
. Spring's @Transactional
only works on a single thread - it creates a session when a thread first enteres a method with @Transactional
(or a method in a class with @Transactional
), and then commits it when it leaves that method.
In your example, the transaction will end after you schedule the job in the thread pool. methodB()
will have it's own transaction.