2013-05-09 6 views
5

जेपीए का उपयोग करके मेरे पास कैस्केड टाइप्स से संबंधित एक प्रश्न है।जेपीए कैस्केड टाइप प्राथमिकता?

उदाहरण के लिए

:

@ManyToMany(fetch=FetchType.LAZY, cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH}) 

यह करने के लिए अलग है:

@ManyToMany(fetch=FetchType.LAZY, cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH}) 

क्यों? मुझे अपने इकाई क्लास में संदर्भित ऑब्जेक्ट्स को स्वचालित रूप से सम्मिलित करने के लिए कैस्केडटाइप जारी रखना आवश्यक है। और मुझे विलय की आवश्यकता है क्योंकि मैं अपने तालिकाओं में डबल प्रविष्टियां नहीं चाहता हूं। लेकिन जब मैं पहले दृढ़ता से परिभाषित करता हूं, विलय काम नहीं करता है, जब मैं परिभाषित करता हूं, तो पहले काम नहीं करता है, लगातार काम नहीं करता है।

क्यों?

+2

क्रम का कोई प्रभाव नहीं करना चाहिए। या तो आपके प्रदाता के पास कोई समस्या है, जो इसे जेपीए अनुपालन नहीं करना चाहिए, या उस इकाई संरचना के साथ कोई समस्या है जिसे आप लगातार कॉल कर रहे हैं या विलय कर रहे हैं। क्या आप पोस्ट कर सकते हैं जो आप कर रहे हैं? – Chris

+1

क्या आप वर्तमान में जेपीए प्रदाता का उपयोग कर रहे हैं? – blitzen12

उत्तर

1

जेपीए विनिर्देश वास्तव में एक बहुत पठनीय दस्तावेज़ है और यहाँ डाउनलोड किया जा सकता है:

:

https://jcp.org/aboutJava/communityprocess/final/jsr317/index.html

यह अंदर पेज 384 पर यह ManyToMany एनोटेशन के cascade विशेषता को शामिल किया गया कैस्केड तत्व कैस्केडेबल ऑपरेशंस के सेट को निर्दिष्ट करता है जो संबंधित इकाई को प्रचारित किया जाता है। कैस्केडेबल ऑपरेशंस को कैस्केड टाइप नाम द्वारा परिभाषित किया गया है: सार्वजनिक enum कैस्केड टाइप {सभी, व्यक्तिगत, मर्ज, रिमूव, रिफ्रेश, डेट}; मान कैस्केड = सभी कैस्केड = {व्यक्तिगत, मेर्ज, रिमूव, रिफ्रेश, DETACH} के बराबर है।

जैसा कि आप देख सकते हैं कि यह आदेश के बारे में कुछ नहीं कहता है। शायद यह हो रहा है कि आपका एप्लिकेशन कभी-कभी एक नई ऑब्जेक्ट का उपयोग कर रहा है जिसे लगातार जारी रखने की आवश्यकता होती है और कभी-कभी उस डेटाबेस से लोड हो जाती है जिसे फिर विलय करने की आवश्यकता होती है। शब्दों के क्रम में, यह एक आवेदन मुद्दा है।

व्यक्तिगत रूप से मैं अपने दृढ़ता संदर्भ में इकाइयों को विलय करने के लिए एक DIY दृष्टिकोण का उपयोग करता हूं। इस विषय पर पढ़ने के लिए एक अच्छा लेख यहाँ है:

http://blog.xebia.com/2009/03/23/jpa-implementation-patterns-saving-detached-entities/

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