Senior
Какво предоставя анотацията @Transactional и какви са нейните атрибути?
sobes.tech AI
Отговор от AI
Коментарът @Transactional в Java се използва за управление на транзакции на ниво методи или класове. Той гарантира, че всички операции в рамките на транзакцията ще бъдат изпълнени атомарно: или всички успешно, или при грешка ще се извърши rollback.
Основни атрибути на @Transactional:
- propagation — определя поведението на транзакцията при извикване от друг транзакционен контекст (например, REQUIRED, REQUIRES_NEW).
- isolation — ниво на изолация на транзакцията (READ_COMMITTED, SERIALIZABLE и др.), влияе върху видимостта на данните.
- timeout — време за изчакване за приключване на транзакцията, след което тя ще бъде прекратена.
- readOnly — указва, че транзакцията е само за четене, което може да оптимизира работата с базата данни.
- rollbackFor / noRollbackFor — класове на изключения, при които транзакцията ще бъде върната или не.
Пример:
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED, timeout = 30, readOnly = false)
public void updateData() {
// бизнес логика
}