2009-10-05 13 views
5

में लेनदेन की स्थिति क्या यह जानने का कोई तरीका है कि लेनदेन जेडीबीसी में "चल रहे" राज्य में है या नहीं? मुझे Connection API में कुछ भी नहीं मिला।जेडीबीसी

धन्यवाद

+0

आप "चल रहे राज्य" को कैसे परिभाषित करेंगे? – skaffman

+0

मेरा मतलब "गंदे" जैसा था - पंक्तियों को अपडेट, डालें और हटाएं। – cadrian

उत्तर

4

जेडीबीसी लेनदेन की स्थिति को ट्रैक नहीं करता है। यह लेनदेन राज्य को ट्रैक करने के लिए डीबी का काम है।

यह देखते हुए कि आपके पास अभी भी लेनदेन राज्यों को ट्रैक/जानने पर दो तरीके हैं।

आप लेनदेन विशिष्ट विवरण मांगने के लिए अपने डीबी को एक एसक्यूएल कॉल कर सकते हैं। ऑरैकल के लिए, यह this post में सुझाए गए वी $ लेनदेन तालिका में होगा। (मेरा मानना ​​है कि वसंत यह भी है)

SELECT COUNT(*) 
    FROM v$transaction t, v$session s, v$mystat 
    WHERE t.ses_addr = s.saddr AND s.sid = m.sid AND ROWNUM = 1; 

एक अन्य समाधान इस तरह के हाइबरनेट के रूप में कुछ सामान्य चौखटे, में लेन-देन प्रबंधक कोड का प्रयोग है।

public interface Session { 
    public abstract org.hibernate.Transaction getTransaction(); 
} 

public Transaction { 
    public abstract boolean wasRolledBack() throws org.hibernate.HibernateException; 

    public abstract boolean wasCommitted() throws org.hibernate.HibernateException; 

    public abstract boolean isActive() throws org.hibernate.HibernateException; 
} 
+0

ऑरैकल टिप के लिए धन्यवाद, यह मेरी मदद करेगा। – cadrian

संबंधित मुद्दे