Junior — Middle
Hogyan működik az @Transactional annotáció, és milyen mechanizmusokat használ a tranzakciós integritás biztosítására?
sobes.tech MI
Válasz az MI-től
A @Transactional annotáció Java-ban (általában a Spring Framework-ben) arra szolgál, hogy módszereket vagy osztályokat jelöljön, amelyek tranzakció keretében kell, hogy végrehajtódjanak.
Ez biztosítja:
- Automatikus tranzakcióindítást a módszerbe lépéskor.
- A tranzakció megerősítését sikeres befejezés esetén.
- A tranzakció visszavonását kivételek esetén.
A használt mechanizmusok:
- Proxy-k (dinamikus vagy CGLIB) elfogják a módszerhívásokat.
- A tranzakciókezelő (
PlatformTransactionManager) kezeli a tranzakció életciklusát.
Példa:
@Service
public class UserService {
@Transactional
public void createUser(User user) {
userRepository.save(user);
// ha itt RuntimeException keletkezik, a tranzakció visszavonódik
}
}
Így a @Transactional garantálja az adatok integritását, automatikusan kezeli a tranzakciókat anélkül, hogy explicit kódot kellene írni a kezdéshez, megerősítéshez vagy visszavonáshoz.