I\'ve seen a method in a Service class that was marked as @Transactional, but it was also calling some other methods in that same class which were not marked as
@Transactional marks the transaction boundary (begin/end) but the transaction itself is bound to the thread. Once a transaction starts it propagates across method calls until the original method returns and the transaction commits/rolls back.
If another method is called that has a @Transactional annotation then the propagation depends on the propagation attribute of that annotation.