Необходимость API транзакций в Java
Прежде всего, мой вопрос: зачем нужен API транзакций в Java? Дайте мне практический пример?
Что означает транзакция, управляемая контейнером, и транзакция, управляемая бином?
И разница между декларативной транзакцией и программной транзакцией?
пожалуйста, помогите мне
заранее спасибо
2 ответа
Декларативная транзакция: вы помещаете декларативную транзакцию в декларацию метода. поэтому вам не нужно реализовывать транзакцию вручную. Здесь я приведу вам пример:
// declarative
@Transcational
public void Transfer (Account from, Account destination, double amount) {
//do your logic here
}
// programmatic
public void Transfer (Account from, Account destination, double amount) {
var session = sessionFactory.openSession();
var tx = session.BeginTransaction();
try {
//do you logic here
tx.Commit();
} catch {
tx.Rolback();
}
}
Container managed transaction
а также bean managed transaction
Я полагаю, вы имеете в виду Enterprise JavaBean
? Насколько я понимаю, управляемая контейнером транзакция не потребует от разработчика явного написания кодов или конструкций для управления транзакцией, аналогично автоматическим фиксациям для базы данных.