समाधान
ठीक है, रहस्य सुलझ गया है! यह पता चला कि मुझे स्पष्ट रूप से कॉल करने की आवश्यकता थी फ्लश () सत्र . पर वस्तु।
निम्नलिखित उत्तर ने मुझे एक संकेत दिया:
हाइबरनेट डेटाबेस में ऑब्जेक्ट को सहेज नहीं रहा है?
उदाहरण
यहां एक कार्यशील उदाहरण दिया गया है (session.flush()
पर ध्यान दें) जिसे बंद करने से पहले . कहा जाना चाहिए एक सत्र ):
@Service
public class TableOneDaoImpl extends HibernateDaoSupport implements TableOneDao {
@Override
public void save(TableOne tableOne) throws Exception {
Session session = null;
try {
session = getSessionFactory().openSession();
session.save(tableOne);
session.flush();
} catch (Exception e) {
throw new Exception("Could not save tableOne!", e);
} finally {
if (session != null) {
session.close();
}
}
}
}
और फिर, MySQL का उपयोग करते समय यह ठीक काम करता है बिना स्पष्ट निस्तब्धता।
दिलचस्प अवलोकन
ऊपर बताए गए टेस्ट वेब ऐप्लिकेशन में शुद्ध हाइबरनेट का इस्तेमाल किया गया है कॉन्फ़िगरेशन और हाइबरनेट का SessionFactory (यानी persistence.xml . के बिना और जेपीए इकाई प्रबंधक ) लेकिन मेरे पास JPA . का उपयोग करने के लिए कॉन्फ़िगर किया गया एक ही परीक्षण एप्लिकेशन भी है . और उस एप्लिकेशन में सब कुछ MySQL और PostgreSQL दोनों के साथ स्पष्ट फ्लशिंग के बिना भी काम करता है।