Start here. This is the direct spoken answer to practice first.
Overview
In the common proxy mode, transaction behavior applies when a call crosses the Spring proxy.
Spring normally implements @Transactional with an AOP proxy around a managed bean. A call from another bean goes through that proxy, which asks the transaction manager to start, join, suspend, commit, or roll back a transaction around the method. A call from one method to another on the same object uses this and does not cross the proxy, so the inner method's separate transactional annotation is not intercepted in the usual proxy mode.