Junior — Middle
Kuidas töötab @Transactional annotatsioon ja milliseid mehhanisme see kasutab transaktsiooni terviklikkuse tagamiseks?
sobes.tech AI
Vastus AI-lt
Java-s (@Transactional annotatsioon tavaliselt Spring Frameworkis) kasutatakse meetodite või klasside märkimiseks, mis peavad toimuma transaktsiooni raames.
See tagab:
- Automaatse transaktsiooni algatamise meetodi sisenemisel.
- Transaktsiooni kinnitamise edukalt lõpetamisel.
- Transaktsiooni tagasivõtmise erandite korral.
Kasutatavad mehhanismid:
- Proxy-d (dünaamilised või CGLIB) haaravad meetodite kutsed.
- Transaktsiooni haldur (
PlatformTransactionManager) haldab transaktsiooni elutsüklit.
Näide:
@Service
public class UserService {
@Transactional
public void createUser(User user) {
userRepository.save(user);
// kui siin visatakse RuntimeException, transaktsioon tühistatakse
}
}
Nii tagab @Transactional andmete terviklikkuse, automaatselt hallates transaktsioone ilma, et oleks vaja kirjutada selget koodi algatamiseks, kinnitamiseks või tühistamiseks.