@Transactional działa przez proxy/AOP Springa: przed wejściem do metody otwierana jest transakcja, a po wyjściu następuje commit lub rollback zgodnie z wyjątkami i regułami. Można ustawić propagację i izolację; wywołanie metody z tej samej klasy omija proxy.