Junior — Middle
62
Объясните принцип работы аннотации @Transactional и ее роль в управлении транзакциями в базе данных.
Companies where asked
Prooftech
Акселератор возможностей
ТОП КЕЙС
Firecode
Answer from AI
sobes.tech AI
Аннотация @Transactional в Java (обычно в Spring Framework) используется для управления транзакциями базы данных на уровне методов или классов.
Принцип работы:
- При вызове метода с
@Transactionalсоздаётся новая транзакция или используется существующая. - Все операции с базой данных внутри метода выполняются в рамках этой транзакции.
- Если метод завершается успешно, транзакция коммитится (сохраняет изменения).
- Если возникает исключение (обычно unchecked), транзакция откатывается, и все изменения отменяются.
Это позволяет гарантировать целостность данных и согласованность состояния базы, особенно при выполнении нескольких связанных операций.
Пример:
@Service
public class UserService {
@Transactional
public void createUserAndProfile(User user, Profile profile) {
userRepository.save(user);
profileRepository.save(profile);
// Если здесь возникнет исключение, оба сохранения будут отменены
}
}
Таким образом, @Transactional упрощает управление транзакциями и помогает избежать ошибок, связанных с частичным выполнением операций.