आपने शायद एक लेन-देन शुरू कर दिया है, और पिछले एक को प्रतिबद्ध या रोलबैक किए बिना दूसरे को शुरू करने का प्रयास कर रहे हैं। प्रोग्रामेटिक ट्रांजैक्शन सीमांकन का उपयोग करते समय मुहावरा निम्नलिखित है:
try {
sess.getTransaction().begin();
// do some work
sess.getTransaction().commit()
}
catch (RuntimeException e) {
sess.getTransaction().rollback();
throw e;
}
यह बोझिल और त्रुटि-प्रवण है, और यही एक कारण है कि घोषणात्मक लेनदेन करने के लिए EJB या स्प्रिंग का उपयोग करना इतना उपयोगी है।