Hibernate не имеет автоматической системы управления транзакциями, поэтому вы должны самостоятельно запускать команды начала, принятия и отката.
Если вы используете spring, с пружиной это может быть намного прощеуправление транзакциями API
Например,
@Transactional
void updateFoo(Foo foo){
//do your stuff
}
В приведенном выше примере новая транзакция будет запущена в начале updateFoo () метод зафиксирован в последней строке.Если между ними возникнет какая-либо проблема, транзакция будет отменена.