हाइबरनेट समग्र तत्व मैपिंग

मेरे पास निम्नलिखित संबंध हैं: फॉर्म - [ऑर्डर] - विशेषता। एक रूप में एन गुण हैं और एक विशेषता एन रूपों से संबंधित हो सकती है। संबंध के लिए एक अतिरिक्त संपत्ति को बचाने की आवश्यकता है: आदेश।

तो मेरे पास एक वर्ग का रूप है, एक वर्ग विशेषता है और इस तरह एक वर्ग form_attribute है:

public class FormAttribute{
    Form form;
    Attribute attribute; 
    int attrOrder;

    //getters/setters
}

फॉर्म मैपिंग पर मैं इस तरह मैपिंग कर रहा हूं:

 
    
    
        
        
    

जब मैं एक नया रूप बनाता हूं और सहयोगी गुणों की अपेक्षा करता हूं, तो मैं उम्मीद करता हूं कि, जब मैं form_attribute तालिका को पॉप्युलेट करता हूं, तो मैं सहेजता हूं। लेकिन केवल फॉर्म और विशेषता तालिका है। क्या यह सामान्य है? क्या मुझे form_attribute संबंध मैन्युअल रूप से अपडेट करना है?

0
उलटा = "सत्य" को हटाकर और मेरी ऑब्जेक्ट को सहेजने के बाद session.flush() जोड़ना यह काम करता है, लेकिन मुझे फ्लश को मजबूर क्यों करना पड़ता है?
जोड़ा लेखक user1718057, स्रोत
मैं वसंत 3.2.5 और हाइबरनेट 4 का उपयोग कर रहा हूं
जोड़ा लेखक user1718057, स्रोत
खैर अभी भी जब मैं फ्लश नहीं करता हूं तो यह नहीं जाता है। और मेरी सेवा विधि जो फ़ॉर्म को सहेजती है @Transactionnal (readOnly = false) है। "एक्सएमएल के बजाय एनोटेशन का उपयोग करना बेहतर है, यह एक अच्छा तरीका नहीं है" इतना अच्छा तर्क नहीं: पी
जोड़ा लेखक user1718057, स्रोत
फ्लश के साथ इसके साथ कुछ भी नहीं होना चाहिए। बीटीडब्ल्यू: एक्सएमएल के बजाय एनोटेशन का उपयोग करना बेहतर है, यह जाने का नया तरीका है।
जोड़ा लेखक K.C., स्रोत

1 उत्तर

तो, आखिरकार यह एक बेवकूफ मुद्दा था। यदि मैं पहले विशेषता को सहेजता नहीं हूं और चूंकि फॉर्म और विशेषता के बीच लिंक को प्रबंधित करने के लिए विशेषता पक्ष पर कोई सेट नहीं है, तो समग्र तत्व सहेजा नहीं गया था। पहले नए गुणों को सहेजना, फिर फॉर्म को सहेजना मेरे मुद्दे को ठीक करना।

0
जोड़ा