Senior
100
Τι παρέχει η σημείωση @Transactional και ποια είναι τα χαρακτηριστικά της;
Εταιρείες όπου ρωτήθηκαν
Позитив Технолоджис
Απάντηση από AI
sobes.tech AI
Η σημείωση @Transactional στη Java χρησιμοποιείται για τη διαχείριση συναλλαγών σε επίπεδο μεθόδου ή κλάσης. Διασφαλίζει ότι όλες οι λειτουργίες εντός της συναλλαγής θα εκτελεστούν ατομικά: είτε όλες με επιτυχία είτε, σε περίπτωση σφάλματος, θα πραγματοποιηθεί rollback.
Βασικά χαρακτηριστικά του @Transactional:
- propagation — καθορίζει τη συμπεριφορά της συναλλαγής όταν καλείται από άλλο συναλλαγικό πλαίσιο (π.χ., REQUIRED, REQUIRES_NEW).
- isolation — επίπεδο απομόνωσης της συναλλαγής (READ_COMMITTED, SERIALIZABLE κ.ά.), επηρεάζει την ορατότητα των δεδομένων.
- timeout — χρόνος αναμονής για την ολοκλήρωση της συναλλαγής, μετά τον οποίο διακόπτεται.
- readOnly — υποδεικνύει ότι η συναλλαγή είναι μόνο για ανάγνωση, κάτι που μπορεί να βελτιστοποιήσει τη δουλειά με τη βάση δεδομένων.
- rollbackFor / noRollbackFor — κλάσεις εξαιρέσεων που θα προκαλέσουν ή όχι rollback.
Παράδειγμα:
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED, timeout = 30, readOnly = false)
public void updateData() {
// επιχειρηματική λογική
}