अपने प्रोजेक्ट में मैं प्रकार एक जो OneToMany संबंध नहीं की वस्तु का उपयोग करें (orphanRemoval = सच है, झरना = CascadeType.ALL, लाने = FetchType.EAGER) प्रकार की वस्तुओं के लिए बी। मुझे एक पूर्ण PO12 अनुरोध का उपयोग कर बी ऑब्जेक्ट्स (बच्चों) के साथ पूर्ण पूर्ण ए ऑब्जेक्ट को स्टोर करने के लिए SpringDataRest (SDR) की आवश्यकता है। मैं एसडीआर, केवल एक है जो मेरे लिए काम किया में कई संयोजनों की कोशिश की, के रूप में निर्यात = false वस्तु के लिए @RepositoryRestResource बनाने के लिए एक और वस्तु बी के लिए @RepositoryRestResource बनाने के लिए है, लेकिन निशान इस (बी) था (अगर मैं वस्तु बी सब से बाहर भंडार का निर्माण नहीं किया, यह काम नहीं होगा -> बस एक वस्तु एकल पोस्ट अनुरोध पर संग्रहीत किया जाएगा, लेकिन नहीं अपने बच्चों (@OneToMany संबंध) प्रकार बी की; एक ही परिणाम तब होता है जब निर्यात किया गया = झूठा बी भंडार के लिए छोड़ा गया है)। क्या यह ठीक है और इसे कैसे प्राप्त किया जा सकता है (एक ही समय में सभी वस्तुओं को संग्रहीत करने के साथ एकल POST अनुरोध)?संशोधित @OneToMany इकाई
कारण मैं पूछ रहा हूं, मेरे पिछले उदाहरण में, मुझे ए के भंडार का उपयोग करके सभी वस्तुओं "जीवन चक्र" को नियंत्रित करना है। मैं इसके साथ ठीक हूँ, क्योंकि एक ->बी संबंध संरचना (बीएक के बाहर मौजूद नहीं है) है। लेकिन मुझे अपने पेरेंट रिपोजिटरी का उपयोग करके एसडीआर द्वारा बी के एक निश्चित ऑब्जेक्ट को संपादित करने (भी हटाने) की गंभीर समस्या है (क्योंकि ऑब्जेक्ट बी का अपना खुद का भंडार निर्यात नहीं किया गया है)। शायद, परिभाषा से यह संभव नहीं है। (": मिलता है, DELETE की अनुमति दें" हेडर में है) -> हां, तो भी -> विधि की अनुमति नहीं के लिए "/ ए/1/बी/2" काम नहीं करता है
- PATCH: मैं इन समाधानों की कोशिश की है PUT प्रश्न
- जेसन पैच या तो काम नहीं करेगा - जेसन पैच सामग्री-प्रकार [{"op": "add", "path": "/ B/2" का उपयोग करके "/ ए/1" के लिए पैच , ....}] -> "लक्ष्य सरणी में ऐसी कोई अनुक्रमणिका " - क्योंकि जेसन पैच "सरणी" के बाद इसके सरणी के सूचकांक के रूप में स्केलर "2" का उपयोग करता है। यह जावा दुनिया में व्यावहारिक नहीं है, जब वस्तुओं के सेट में संबंध रखा जाता है - अनुक्रमण का कोई अर्थ नहीं है बिल्कुल। (निर्यात = true)
- मैं भंडार का निर्यात कर सकता है वस्तु बी की के लिए यह "सीधे" जोड़ तोड़, लेकिन मैं दुकान पूरी वस्तु अपने बी के साथ एक करने की क्षमता खो जाएगा इस तरह से वस्तुओं एक एकल में पोस्ट अनुरोध जैसा कि मैंने पहले उल्लेख किया है।
मैं PUT के लिए अपने बी वस्तु में से एक एकल छोटे संशोधन के साथ पूरे एक वस्तु भेजने से बचने का, यदि संभव हो तो करना चाहते हैं। धन्यवाद।
आपकी व्यापक पोस्ट के लिए, माथीस, बहुत बहुत धन्यवाद। मेरी समस्या यह है कि, जैसा कि मैंने उल्लेख किया है, कि मैं सेट्स का उपयोग करता हूं और सूची नहीं देता (@ ऑर्डर कॉलम सेट के साथ काम नहीं करता है)। मुझे आपको एक व्यक्तिगत प्रश्न पूछने दो: क्या आपको नहीं लगता कि वास्तविक इकाई के "आईडी" के बजाय "इंडेक्स" का उपयोग करना आसान आराम क्वेरी के साथ "अजीब" समाधान है? मुझे पता है, यह जेसनपैच के मुख्य उद्देश्य (जेसन को संशोधित करने के लिए) के साथ आता है ... लेकिन वैसे भी, मैं उत्सुक हूं, अगर यह अलग-अलग तरीके से किया जा सकता है। – rotmajster
मैं सूची में कोई आइटम जोड़ने के लिए अपना समाधान आज़मा रहा हूं और मुझे कई त्रुटियां मिल रही हैं: '' op ":" add "," path ":"/manies/- "," value ": {" name " : "4"} एक ऐसी सूची में जिसमें कोई प्रविष्टियां नहीं हैं, मुझे 'osesSpelEvalaluException: EL1004E: विधि कॉल: विधि आकार() एक प्रकार पर नहीं पाया जा सकता है, इसलिए मैंने '/ manies' का उपयोग करने का प्रयास किया, जिसने मुझे' संगठन 'दिया .springframework.data.rest.webmvc.json.patch.PatchException: क्लास org.hibernate.collection.internal में {"name": "4"} नहीं पढ़ सका। पार्सिस्टेंटबैग! 'कोई विचार? – joshwa