मैं वर्तमान में ईक्लीपसेलिंक का उपयोग कर रहा हूं, लेकिन अब मुझे पता है कि अधिकांश जेपीए कार्यान्वयन बहुत मानक हैं। क्या एक जेपीए इकाई को देखने के लिए मानचित्र करने का कोई मूल तरीका है? मैं सम्मिलित/अद्यतन करने की तलाश नहीं कर रहा हूं, लेकिन सवाल वास्तव में @Id एनोटेशन को कैसे संभालना है। जेपीए दुनिया में प्रत्येक इकाई के पास एक आईडी फ़ील्ड होना चाहिए, लेकिन मैंने बनाए गए कई विचार इस अनुरूप नहीं हैं। क्या जेपीए में इसके लिए मूल समर्थन है या क्या मुझे इसे काम करने के लिए हैक का उपयोग करने की ज़रूरत है? मैंने बहुत कुछ खोजा है और ऐसा करने के बारे में बहुत कम जानकारी मिली है।क्या जेपीए एसक्यूएल विचारों के लिए मैपिंग का समर्थन करता है?
उत्तर
जबकि सीधे समर्थित प्रकार के क्षेत्रों के साथ @Id
एनोटेशन का उपयोग कर एक इकाई की पहचान निर्दिष्ट करने के लिए एकमात्र तरीका नहीं है (@Embedded
के साथ कई @Id
एनोटेशन के साथ @IdClass
या @EmbeddedId
देखें), जेपीए विनिर्देश प्रत्येक इकाई के लिए एक प्राथमिक कुंजी की आवश्यकता है।
उस ने कहा, आपको डेटाबेस दृश्यों के साथ जेपीए का उपयोग करने के लिए इकाइयों की आवश्यकता नहीं है। चूंकि एक दृश्य में मैपिंग एक एसक्यूएल परिप्रेक्ष्य से किसी तालिका में मैपिंग से अलग नहीं है, तो आप इसके बजाय स्केलर मानों को पुनर्प्राप्त करने के लिए मूल प्रश्नों (createNativeQuery
EntityManager
पर) का उपयोग कर सकते हैं।
मैं इसे स्वयं देख रहा हूं, और मुझे एक हैक मिला है कि मैं 100% निश्चित काम नहीं कर रहा हूं लेकिन यह आशाजनक दिखता है।
मेरे मामले में, मेरे पास एक एफके कॉलम है जो प्रभावी रूप से पीके के रूप में कार्य कर सकता है - उस विदेशी वस्तु का कोई भी उदाहरण केवल एक बार दृश्य में हो सकता है। मैंने उस क्षेत्र के दो ऑब्जेक्ट्स को परिभाषित किया है: एक को आईडी निर्दिष्ट किया गया है और क्षेत्र के कच्चे मूल्य का प्रतिनिधित्व करता है, और दूसरा केवल पढ़ने के लिए नामित किया जाता है और संदर्भित वस्तु का प्रतिनिधित्व करता है।
@Id
@Column(name = "foreignid", unique = true, nullable = false)
public Long getForeignId() {
...
@OneToOne
@JoinColumn(name = "foreignid", insertable=false, updatable=false)
public ForeignObject getForeignObject() {
...
जैसा कि मैंने कहा, मैं 100% इस एक (और मैं सिर्फ यह जवाब अगर यह पता चला है काम करने के लिए नहीं हटा देंगे) पर यकीन नहीं है, लेकिन यह एक प्रकार का क्रैश बिंदु पर पीछे मेरी कोड मिला है।
डुनो अगर यह आपकी विशिष्ट स्थिति पर लागू होता है, हालांकि। और एक शानदार मौका है कि 11 महीनों के बाद, अब आप परवाह नहीं है। :-) क्या है, "Necromancer" बैज सिर्फ खुद कमाई नहीं करता है ....
मेरे विचार में मेरे पास एक "अद्वितीय" आईडी है, इसलिए मैंने इसे इकाई आईडी के रूप में मैप किया। यह बहुत अच्छी तरह से काम करता है: सामान्य तालिकाओं के रूप में
@Entity
@Table(name="table")
@NamedQuery(name="Table.findAll", query="SELECT n FROM Table n")
public class Table implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="column_a")
private int columnA;
- 1. जेपीए इंटरफेस का समर्थन नहीं करता .. प्रभाव?
- 2. एसक्यूएल में विचारों का उद्देश्य क्या है?
- 3. क्या एसक्यूएल डेवलपर स्क्रिप्ट निष्पादित करने का समर्थन करता है?
- 4. क्या वेबड्राइवर पाइथन के लिए पेजफैक्टरी का समर्थन करता है?
- 5. क्या मोनो एक्सएएमएल का समर्थन करता है?
- 6. क्या cocos2d एआरसी का समर्थन करता है?
- 7. क्या OpenRasta मोनो का समर्थन करता है?
- 8. क्या फैंटॉमजेएस कुकीज़ का समर्थन करता है?
- 9. क्या Qt OpenMP का समर्थन करता है?
- 10. क्या Arduino थ्रेडिंग का समर्थन करता है?
- 11. क्या कोई अच्छा ओआरएम (अधिमानतः जेपीए कार्यान्वयन) है जो SQLite (एंड्रॉइड पर) का समर्थन करता है?
- 12. एसक्यूएल सर्वर सीई वर्चर्स का समर्थन क्यों नहीं करता है?
- 13. क्या हेरोोकू PHP का समर्थन करता है?
- 14. क्या मिनजीडब्ल्यू एमएफसी का समर्थन करता है?
- 15. क्या एसक्यूएलकेमी कैशिंग का समर्थन करता है?
- 16. क्या लुआ यूनिकोड का समर्थन करता है?
- 17. क्या tryhaskell.org समर्थन परिभाषाओं का समर्थन करता है?
- 18. क्या jsoup xpath का समर्थन करता है?
- 19. क्या LevelDB जावा का समर्थन करता है?
- 20. क्या स्प्रिंग एमवीसी जेएसआर 311 एनोटेशन का समर्थन करता है?
- 21. क्या स्कैला समर्थन पूंछ रिकर्सन ऑप्टिमाइज़ेशन का समर्थन करता है?
- 22. एसक्यूएल कॉम्पैक्ट संस्करण क्लस्टर्ड इंडेक्स का समर्थन करता है?
- 23. जेपीए/हाइबरनेट मैपिंग टेबल एक से कई रिश्तों के लिए
- 24. क्या हाइबरनेट MySQL में सीमा कथन का समर्थन करता है?
- 25. क्या ओरेकल पूर्ण पाठ खोज का समर्थन करता है?
- 26. क्या जीतने के लिए Devexpress GridControl समर्थन पेजिंग का समर्थन करता है?
- 27. क्या जीडब्ल्यूटी जेएसएनआई कॉलबैक का समर्थन करता है?
- 28. जावा के लिए पर्सिस्टेंस प्रदाता जो अंतिम फ़ील्ड्स का समर्थन करता है
- 29. माइक्रोसॉफ्ट एसक्यूएल एज़ूर के लिए ओएलई डीबी कनेक्शन का समर्थन क्यों नहीं करता है?
- 30. एक्सएमएल-टू-एसक्यूएल मैपिंग
दृश्य काम करता है, लेकिन अगर आप विचारों जेपीए ORM मानचित्रण के साथ अच्छी तरह से फिट नहीं करता है आप के बजाय एक संग्रहीत प्रक्रिया का उपयोग कर सकते दृश्य (ओं) से गठित एक कस्टम कर्सर वापस जाने के लिए। आप @NamedStoredProcedureQuery एनोटेशन का उपयोग करके EclipseLink में संग्रहित प्रक्रियाओं को मानचित्रित कर सकते हैं। "ग्रहण लिंक एक्सटेंशन" के लिए इस Google पर अधिक जानकारी के लिए। –