Junior — Middle
Μπορείτε να εφαρμόσετε την ετικέτα @Transactional σε ιδιωτικές μεθόδους σε υπηρεσίες Java;
sobes.tech AI
Απάντηση από AI
Η σημείωση @Transactional στο Spring λειτουργεί μέσω proxy που δημιουργούνται γύρω από τις δημόσιες μεθόδους των beans. Τα proxies παρεμβαίνουν στις κλήσεις και διαχειρίζονται τις συναλλαγές. Αν μια μέθοδος είναι ιδιωτική, η κλήση γίνεται απευθείας μέσα στην κλάση, παρακάμπτοντας το proxy, και η σημείωση δεν θα έχει αποτέλεσμα.
Επομένως, δεν έχει νόημα να εφαρμόζετε το @Transactional σε ιδιωτικές μεθόδους — η συναλλαγή δεν θα ανοίξει. Συνιστάται να σημειώνετε με @Transactional τις δημόσιες μεθόδους που πρέπει να είναι συναλλαγές.