से बचें मैं हाइबरनेट में नौसिखिया हूं।हाइबरनेट में org.hibernate.TransactionException क्यों और
मैंने mysql डेटाबेस सर्वर में डेटा डालने के लिए एक छोटे प्रोग्राम को कोड करने का प्रयास किया है।
private int insertRelateNew(int newId, List<DocSimilar> relateNews) {
Session session = HibernateUtils.currentSession();
Transaction tx = session.beginTransaction();
RelatedArticles relatedArticles = null;
try {
relatedArticles = new RelatedArticles();
for (DocSimilar doc : relateNews) {
ApplicationPK appPK = new ApplicationPK(newId,
(int) doc.getDocid());
relatedArticles.setApplicationPK(appPK);
relatedArticles.setRelated_score(doc.getPercent());
session.save(relatedArticles);
tx.commit();
session.flush();
}
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}
return newId;
}
जब चल रहा है, यह सफल डालने लेकिन कुछ समय यह एक TransactionException फेंक:
यह मेरा कार्यक्रम के स्रोत कोड है।
org.hibernate.TransactionException: Transaction not successfully started
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:131)
at com.ant.crawler.dao.hibernate.SqlNewsPersistencer.insertRelateNew(SqlNewsPersistencer.java:56)
at com.ant.crawler.dao.hibernate.SqlNewsPersistencer.insertNews(SqlNewsPersistencer.java:40)
at com.ant.crawler.dao.hibernate.SqlPersistencer.store(SqlPersistencer.java:44)
at com.ant.crawler.core.AbstractCrawler.crawl(AbstractCrawler.java:186)
at com.ant.crawler.core.Worker.run(Worker.java:14)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
मैं इस समस्या, किसी को सलाह दी पकड़ अपवाद और रोलबैक() की खोज:
यह अपवाद कंसोल है।
लेकिन इस तरह से रिकॉर्ड खो सकता है जिसे मैं डीबी में डालना चाहता हूं।
मुझे पता है कि इसे टालने के लिए अपवाद क्यों होता है। http://www.dil.univ-mrs.fr/~massat/docs/hibernate-3.1/api/org/hibernate/TransactionException.html
यह कहा:
मैं हाइबरनेट जावा डॉक्टर में अपवाद की खोज "। यह बताता है कि लेन-देन, शुरू नहीं किया जा सकता है प्रतिबद्ध या वापस लुढ़का"
यह स्पष्ट नहीं करता कि अपवाद क्यों होता है।
कृपया मुझे बताएं कि अपवाद क्यों होता है और इससे कैसे बचें।
बहुत बहुत धन्यवाद।
क्या आप किसी भी लॉगिंग एपीआई का उपयोग करते हैं? 'Org.hibernate.transaction' लॉगर्स सक्षम करें और विश्लेषण के लिए लॉग प्राप्त करें। –