Sobes.tech
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() {
    // επιχειρηματική λογική
}