Sobes.tech
Junior — Middle

Explica principiul de funcționare al adnotării @Transactional și rolul său în gestionarea tranzacțiilor în baza de date.

sobes.tech AI

Răspuns de la AI

A adnotare @Transactional în Java (de obicei în Spring Framework) este utilizată pentru gestionarea tranzacțiilor bazei de date la nivel de metode sau clase.

Principiul de funcționare:

  • Când se apelează o metodă cu @Transactional, se creează o tranzacție nouă sau se utilizează una existentă.
  • Toate operațiunile cu baza de date din interiorul metodei sunt efectuate în cadrul acestei tranzacții.
  • Dacă metoda se finalizează cu succes, tranzacția este confirmată (modificările sunt salvate).
  • Dacă apare o excepție (de obicei unchecked), tranzacția este anulată și toate modificările sunt anulate.

Acest lucru permite garantarea integrității datelor și coerenței stării bazei de date, mai ales atunci când se execută mai multe operațiuni legate între ele.

Exemplu:

@Service
public class UserService {

    @Transactional
    public void createUserAndProfile(User user, Profile profile) {
        userRepository.save(user);
        profileRepository.save(profile);
        // Dacă apare o excepție aici, ambele salvări vor fi anulate
    }
}

Astfel, @Transactional simplifică gestionarea tranzacțiilor și ajută la evitarea erorilor legate de execuția parțială a operațiunilor.