Транзакция - это функция базы данных, которая гарантирует атомарность. Она всегда запускается и фиксируется или откатывается на уровне базы данных.
Используя Hibernate, вы можете запускать, фиксировать илиоткат транзакции .(Предположим, у вас есть экземпляр Hibernate SessionFactory
)
Session session = sessionFactory.getCurrentSession();
session.getTransaction().begin();
try {
// perform some data changes ...
session.getTransaction().commit(); // will save all changes
} catch (Exception e) {
session.getTransaction().rollback(); // will discard all changes
throw e;
} finally {
session.close();
}
После запуска транзакции вы можете начать изменять данные в разных таблицах. Все изменения, которые были сделаны в области действиятранзакции будут либо зафиксированы, либо отменены.
Обратите внимание , что когда вы используете Hibernate для запуска транзакции, вызывает JDBC Driver под капотом ( см. Транзакции JDBC ), а драйвер использует правильный SQL-запрос для запуска транзакции (см. PostgreSQL START TRANSACTION ).
Вы не должны управлять транзакциями вручную в реальных проектах.Такие фреймворки, как Spring , обеспечивают гораздо более сложное декларативное управление транзакциями.