2010-01-13 12 views
5

मैं निम्न त्रुटि जब एक वस्तु लागू करने के लिए प्रयास करने से मिलती है:जेपीए Eclipselink: कैसे जो रिश्ते को खोजने के लिए खड़ी कर रहा है त्रुटि

java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST

वहाँ जो रिश्ते समस्या वस्तु है बताने के लिए किसी भी आसान तरीका है?

यह संभव है कि निरंतर ऑब्जेक्ट में कई रिश्तों और परीक्षण और त्रुटि हो या उन्मूलन कार्यों से पता चलता है, लेकिन मैं जानना चाहता हूं कि समस्या संबंध वस्तु की पहचान करने का एक आसान तेज़ तरीका है या नहीं।

अद्यतन: मुझे समय-समय पर इस समस्या का सामना करना पड़ता है, और मैं हमेशा समस्या का स्रोत ढूंढने में सक्षम हूं, या समस्या को हल करने के लिए परिचालनों को पुन: व्यवस्थित करने में सक्षम हूं, लेकिन मेरी समस्या यह है कि समय यह अपमानजनक वस्तु को खोजने के लिए लेता है।

मेरे समाधान हमेशा परीक्षण और त्रुटि से पाए जाते हैं। मुझे कभी-कभी मिनटों में समाधान मिल जाता है, लेकिन कभी-कभी इसमें घंटों लगते हैं। मेरा सवाल यह है: क्या यह पता लगाने का एक आसान तरीका है कि संभवतः कई रिश्ते समस्या का कारण बन रहे हैं। अपवाद केवल दावा करता है कि "रिश्ते" के माध्यम से एक "नई वस्तु" पाई गई, इससे मुझे यह पता लगाने में मदद नहीं मिलती कि कौन सा ऑब्जेक्ट या रिश्ते। क्या सिस्टम को एक और विशिष्ट त्रुटि प्रदान करने के लिए एक लॉग या कोई तरीका है?

+2

शायद आप http://dev.eclipse.org/mhonarc/lists/eclipselink-users/msg00553.html देखना चाहते हैं, तो अपना कोड दिखाएं। मैं अनुमान नहीं लगा सकता कि क्या हो रहा है जब तक कि आप अधिक जानकारी प्रदान न करें। –

+0

आर्थर: धन्यवाद और मैं आपकी प्रतिक्रिया की सराहना करता हूं, लेकिन मेरा प्रश्न उससे अधिक सामान्य है। मैंने आपके प्रश्न को अपडेट किया है ताकि आपको यह पता चल सके कि मैं क्या देख रहा हूं। – rayd09

+0

क्या आपने eclipselink.logging.level को persistence.xml में कॉन्फ़िगर करने का प्रयास किया है - http://wiki.eclipse.org/EclipseLink/Examples/JPA/Logging ?? – rochb

उत्तर

-1
<property name="eclipselink.logging.level" value="FINEST"/> 

ईक्लीप्स लिंक को अधिक विस्तृत लॉग दिखाने का कारण बन जाएगा जो त्रुटि के कारण को अधिक बारीकी से पहचानने में आपकी सहायता कर सकता है।

+0

सुझाव के लिए धन्यवाद। कोशिश की, यह अभी भी मुझे आवश्यक विस्तार नहीं देता है। – rayd09

-1

उत्तर सरल है: डिबगिंग और परीक्षण। जुनीट/टेस्टएनजी और डीबगिंग मोड आपके दोस्त होना चाहिए। इस त्रुटि के साथ कुछ खास नहीं है।

इसके अलावा, कैस्केड.पर्सिस्ट खो सकता है, इसलिए आपको यह अपवाद मिलता है।
और जानकारी: http://en.wikibooks.org/wiki/Java_Persistence/Relationships#Cascading

0

अगले अपने एप्लिकेशन के सभी अनुरोध के लिए एक श्रोता है, इसे सक्रिय करने के:

  1. अपने persistence.xml ऐड में:

    <property name="eclipselink.session.customizer" value="dz.bilelovitch.QueryListener"/> 
    
  2. QueryListener बनाएं :

    import org.eclipse.persistence.config.SessionCustomizer; 
    import org.eclipse.persistence.sessions.Session; 
    
    public class QueryListener implements SessionCustomizer { 
    
        @Override 
        public void customize(Session aSession) throws Exception { 
         System.out.println("log " + aSession.getLog()); 
        } 
    
संबंधित मुद्दे