2013-11-25 2 views
8

के लिए कोई प्राथमिक कुंजी वाला SQL व्यू मैपिंग मेरे जावा ऐप में मैं जेपीए का उपयोग करके अपने ओरेकल डेटाबेस में संग्रहीत जानकारी प्राप्त करना चाहता हूं। मेरे डेटाबेस में मेरे पास एक दृश्य है, जो कॉलम के एक सेट के साथ है जो मुझे कुछ अन्य तालिकाओं से मिला है। मैं उस दृश्य को मैप करना चाहता हूं। हालांकि, मेरे दृश्य में प्राथमिक कुंजी नहीं है, इसलिए मैं एक जेपीए इकाई नहीं बना सकता। मैंने सोचा कि विदेशी कुंजी के रूप में 2 कॉलम का उपयोग करें।जेपीए एंटिटी

इसे लागू करने का सबसे अच्छा तरीका क्या है? मैंने कई अलग-अलग दृष्टिकोण देखे हैं, कि मैं यह तय नहीं कर सकता कि इस मामले के लिए सबसे अच्छा कौन सा है।

उत्तर

6

एक तरीका यह सिर्फ उचित क्षेत्रों के लिए @Id एनोटेशन जोड़कर एक समग्र प्राथमिक कुंजी का उपयोग करें।

+1

धन्यवाद, एक समग्र प्राथमिक कुंजी (@IdClass एनोटेशन के साथ) का उपयोग करके मेरी समस्या हल हो गई। – user2144555

+0

धन्यवाद यह समाधान है, मैंने अपनी समस्या को हल करने के लिए @Id को जोड़कर, मैं आर्किलियन का उपयोग कर रहा हूं इसलिए मुझे दृश्य के लिए इकाई जोड़नी थी और प्राथमिक कुंजी जोड़ने के लिए एक और फ़ील्ड जोड़ना था – cabaji99

3

कोई अच्छा तरीका नहीं है। चूंकि यह एक दृश्य है, आप इसमें कोई भी डेटा कभी नहीं डालेंगे, जिसका अर्थ है कि आप किसी भी मौजूदा फ़ील्ड पर प्राथमिक कुंजी को परिभाषित कर सकते हैं। इसके अलावा आप insertable=false, updatable=false के साथ उस फ़ील्ड को चिह्नित करने का प्रयास कर सकते हैं।

अद्यतन

आप अपने डेटा को बेहतर पता है, लेकिन एक दृश्य आप गारंटी नहीं दे सकते कि सभी रिकॉर्ड अद्वितीय हैं, जिसमें सामान्य में कारण है कि आप सामान्य से संस्थाओं के साथ प्रत्यक्ष रूप से कार्य करने से बचने में चाहिए राय। मेरा सुझाव है कि एक आवरण वर्ग, की तरह कुछ के साथ काम करने के बजाय: हल करने के लिए

SELECT new com.domain.MyWrapper(field1, field2, field3, field4,...) FROM ViewEntity 
+1

यह तब काम नहीं करता जब मुझे तालिका में पंक्तियों के बारे में जानकारी मिलती है जिसमें प्राथमिक कुंजी के रूप में सेट फ़ील्ड बराबर सामग्री होती है। कोई त्रुटि नहीं दी गई है, लेकिन जानकारी बदल दी गई है। – user2144555

+0

प्रतिक्रिया अद्यतन किया गया। –

+0

अगर मैंने कुछ समय पहले आपका जवाब देखा था, तो मैं डेटाबेस पर कभी भी विचार नहीं करता और इसे एक इकाई के रूप में मानचित्रित नहीं करता। विशिष्टता ने मेरी ऐप रिपोर्टों को मार डाला, और मैंने इसके कारण लगभग अपनी परियोजना को छोड़ दिया ... धन्यवाद – ViniciusPires

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