Bạn có thể đã bắt đầu một giao dịch và cố gắng bắt đầu một giao dịch khác mà không cần cam kết hoặc hoàn lại giao dịch trước đó. Thành ngữ khi sử dụng phân giới giao dịch có lập trình là câu sau:
try {
sess.getTransaction().begin();
// do some work
sess.getTransaction().commit()
}
catch (RuntimeException e) {
sess.getTransaction().rollback();
throw e;
}
Điều này cồng kềnh và dễ xảy ra lỗi, và đây là một trong những lý do tại sao việc sử dụng EJB hoặc Spring để thực hiện các giao dịch khai báo lại rất hữu ích.